2017-01-15 21 views
-1

私のVB.NETフォームには、それぞれ1253のグループボックスがあり、それぞれにvoltというコンボボックスが含まれています。このコードを使用してすべてのコンボボックスに価値を追加しました。vbox.netでグループボックスをループする方法

For count = 1 To 50 
    Dim volt = DirectCast(Me.Controls("volt" & count & ""), ComboBox) 
    volt.Items.Add("what a code") 
Next 

しかし、それらは別のグループボックスに配置されました。

For count = 1 To 50 
    Dim volt = DirectCast(groupbox1.Controls("volt" & count & ""), ComboBox) 
    volt.Items.Add("what a code") 
Next 

グループボックス1でのみ動作します。残りのグループボックスにどのように影響を与えることができますか?このような何かが(実際にjmcilhinney提案を)あなたのために働くかもしれない

+0

Welcome to Stackoverflow!サイトを最大限に活用するには、良い質問をすることが重要です。質問のガイドはhttp://stackoverflow.com/help/how-to-ask –

+1

フォームの 'Controls'コレクションをループして各' GroupBox'にアクセスし、ループ内で ' 'GroupBox'の' Controls'コレクションを介して 'ComboBox'を呼び出します。 – jmcilhinney

答えて

0

For Each ctl As Control In Me.Controls 
    For Each cmb As Combobox In ctl.Controls.OfType(Of Combobox)() 
     cmb.Text = "Volt" 
    Next 
Next 

しかし、これには注意してください - あなたのグループボックスは、パネルやスプリットコンテナがその内部でループを行うとしてではなく、コンテナ内にある場合Me.Controlsで。

+0

それはグループボックスに一度だけ残して、フォーム上のcomboxに影響を与えました – mekkakelvin

+0

**グループボックスに一度残しておけば、フォーム上のcomboxに影響を与えました** _ - 明らかにあなたは答えを読んでいない、コンボコレクションのループ(*** In Me.controls ***)は、あなたのコンボボックスがフォーム上に直接存在する場合にのみ機能します** Groupbox、Panelなどのコンテナで** AND NOT ** 、あなたのための最も簡単な解決策 - しかし、私は正しいとは思わない。あなたの場合は、この[リンク](http://stackoverflow.com/questions/15186828/loop-through-all-controls-on-a-form-even-those-in-groupboxes)のようにしてください。オンラインコンバータを使用してVB.NETに変換できます。 – LuckyLuke82

関連する問題