- - PR -
panel上のcomboboxの数について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-08 17:45
さかもと と申します。
VB.Net(Winアプリ) panelコントロールについてご教授いただければと思います。 現在パネル上にあるコンボボックスの数を取得しようと試みています。 Dim j as Integer j = Panel1.Controls.Count として,パネルに配置されているコントロール全ての数は取得できたのですが, ComboBoxコントロールのみの数を取得することは可能でしょうか? 検索キーワードでも結構ですので,ご存知の方がいらっしゃいましたらどうか宜しくお願いいたします。 | ||||
|
投稿日時: 2005-06-08 18:01
こんにちは、じゃんぬ です。
For Each で Controls を列挙して識別すれば良いでしょう。 For Each hControl As Control In Me.MyPanel.Controls If TypeOf hControl Is ComboBox Then iCount += 1 End If Next hControl _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-06-08 19:15
じゃんぬねっと様
どうも,いつもお世話になります。 やはり,繰り回してカウント取るしかないですか・・・。 教えて頂いた通りにさせて頂きます。 ありがとうございました。 | ||||
|
投稿日時: 2005-06-08 23:26
南部です。
ControlAddedイベントとControlRemovedイベントを利用するか、 Panelを継承してOnControlAddedとOnControlRemovedを オーバーライドして、加減算するのはいかが? | ||||
|
投稿日時: 2005-06-09 07:33
nanbu様
ご返答ありがとう御座いました。 >ControlAddedイベントとControlRemovedイベントを利用するか については検討したことがなかったので勉強させて頂きます。 >オーバーライドして、加減算するのはいかが? についてはじっくりじっくり勉強させて頂きます・・・。(スラスラと出来れば・・・) 本当にありがとうございました。 | ||||
|
投稿日時: 2005-06-09 09:19
こんにちは、じゃんぬ です。
言い忘れましたが、もし Panel 内にさらにコンテナがあり、 その中に ComboBox が配置されている場合は再帰呼び出しが必要です。 もしコンテナがある場合、ControlAdded イベントや、ControlRemoved も、 毎回追加されるコントロール内に、コントロールがないかを見ないといけません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-06-09 10:04
じゃんぬねっと様
お世話になります。 なるほど,そのようなことも考慮して配置しなくてはならないのですね・・・。 注意しなくてはまた悩むところでした・・・(笑) ありがとうございました。 | ||||
|
投稿日時: 2005-06-09 15:13
コンテナでふと思いついたのですが、
「対象のパネル」の「子のコンテナ」にコンボボックスを追加/削除した場合、 ControlAdded/Removed イベントが「パネルに」発生する? しないとすると、何かが追加されたときに それの ControlAdded / ControlRemoved にも加減算イベントハンドラをつけないと いけなくなるかもしれませんね。 [ メッセージ編集済み 編集者: にしざき 編集日時 2005-06-09 15:14 ] |