数行のコードを節約するためだけに、このエラーが発生しやすい方法でそれを行う必要はありません。でもどうしても欲しいなら……。
Panel
関連するコントロールを論理的にグループ化する、または別のコンテナー コントロールを使用できます。次にMyPanel.Controls.OfType(Of Button)()
、そこにあるすべてのボタンをフィルタリングして検索します。
For Each btn As Button In MyPanel.Controls.OfType(Of Button)()
btn.Text = "blah" 'from database...or something
Next
もう 1 つの方法は、List(Of Button)
最初のようにすべてを配列または他のコレクション型に入れ、後でそれらをループすることです。
Dim myButtons = {button1, button2, button3, button4, button5, button6}
For Each btn In myButtons
btn.Text = "blah" 'from database...or something
Next
最後ControlCollection.Find
に、名前に特定の文字列を持つコントロールを見つけるために使用できます。
For i As Int32 = 1 To 10
Dim btns = Me.Controls.Find("button" & i, True)
If btns.Length > 0 Then
btns(0).Text = "blah" 'from database...or something
End If
Next