- PR -

panel上のcomboboxの数について

投稿者投稿内容
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2005-06-08 17:45
さかもと と申します。
VB.Net(Winアプリ)

panelコントロールについてご教授いただければと思います。
現在パネル上にあるコンボボックスの数を取得しようと試みています。

Dim j as Integer
j = Panel1.Controls.Count

として,パネルに配置されているコントロール全ての数は取得できたのですが,
ComboBoxコントロールのみの数を取得することは可能でしょうか?

検索キーワードでも結構ですので,ご存知の方がいらっしゃいましたらどうか宜しくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-08 18:01
こんにちは、じゃんぬ です。

引用:

パネルに配置されているコントロール全ての数は取得できたのですが,
ComboBoxコントロールのみの数を取得することは可能でしょうか?


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 の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2005-06-08 19:15
じゃんぬねっと様
どうも,いつもお世話になります。
やはり,繰り回してカウント取るしかないですか・・・。

教えて頂いた通りにさせて頂きます。

ありがとうございました。
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2005-06-08 23:26
南部です。

ControlAddedイベントとControlRemovedイベントを利用するか、
Panelを継承してOnControlAddedとOnControlRemovedを
オーバーライドして、加減算するのはいかが?
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2005-06-09 07:33
nanbu様
ご返答ありがとう御座いました。

>ControlAddedイベントとControlRemovedイベントを利用するか
については検討したことがなかったので勉強させて頂きます。

>オーバーライドして、加減算するのはいかが?
についてはじっくりじっくり勉強させて頂きます・・・。(スラスラと出来れば・・・)

本当にありがとうございました。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-09 09:19
こんにちは、じゃんぬ です。

言い忘れましたが、もし Panel 内にさらにコンテナがあり、
その中に ComboBox が配置されている場合は再帰呼び出しが必要です。

もしコンテナがある場合、ControlAdded イベントや、ControlRemoved も、
毎回追加されるコントロール内に、コントロールがないかを見ないといけません。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2005-06-09 10:04
じゃんぬねっと様

お世話になります。
なるほど,そのようなことも考慮して配置しなくてはならないのですね・・・。
注意しなくてはまた悩むところでした・・・(笑)

ありがとうございました。

にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-06-09 15:13
コンテナでふと思いついたのですが、
「対象のパネル」の「子のコンテナ」にコンボボックスを追加/削除した場合、
ControlAdded/Removed イベントが「パネルに」発生する?

しないとすると、何かが追加されたときに
それの ControlAdded / ControlRemoved にも加減算イベントハンドラをつけないと
いけなくなるかもしれませんね。


[ メッセージ編集済み 編集者: にしざき 編集日時 2005-06-09 15:14 ]

スキルアップ/キャリアアップ(JOB@IT)