宣言されたすべてのボタンをフォームに追加したい
何かのようなもの:
dim btn1,btn2,btn3 as new button
for each btn as button in declared.buttons
me.controls.add(btn)
next
次のようにボタンを追加できます。
For i As Integer = 1 To 150
Dim btn As New Button()
btn.Name = "btn" + i.ToString()
Controls.Add(btn)
Next
後で、次のようにボタンにアクセスできます。
Dim btn As Button = CType(Controls("btn1"), Button)
ただし、非常に多くのコントロールを動的にロードする必要がある場合は、設計を再検討することをお勧めします。ほとんどの場合、それは悪い考えのように思えます。
次のようなものを使用して、宣言したすべてのボタンを取得できます。
Dim buttons = From fi In Me.GetType().GetFields(BindingFlags.Instance Or BindingFlags.NonPublic)
Where fi.FieldType Is GetType(Button)
Select CType(fi.GetValue(Me), Button)
私の頭の上から..まだそれに取り組んでいます..しかし、あなたはアイデアを理解しますか?