0

宣言されたすべてのボタンをフォームに追加したい

何かのようなもの:

dim btn1,btn2,btn3 as new button

for each btn as button in declared.buttons
me.controls.add(btn)
next
4

2 に答える 2

1

次のようにボタンを追加できます。

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)

ただし、非常に多くのコントロールを動的にロードする必要がある場合は、設計を再検討することをお勧めします。ほとんどの場合、それは悪い考えのように思えます。

于 2012-08-23T15:14:26.427 に答える
0

次のようなものを使用して、宣言したすべてのボタンを取得できます。

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)

私の頭の上から..まだそれに取り組んでいます..しかし、あなたはアイデアを理解しますか?

于 2012-08-23T15:26:26.530 に答える