コントロールを検索する方法はさまざまな方法があります。その例を記載します。
特定のコントロール検索
'Panel内のコントロール(子コントロール)は検索できない 'Panel内を検索するには、Meをパネルオブジェクトにする Dim ctrl As Control = Me.Controls("TextBox1") If ctrl IsNot Nothing Then MessageBox.Show("コントロール有り") End If または 'Panel内のコントロール(子コントロール)も検索できる Dim ctrls As Control() = Me.Controls.Find("TextBox1", False) If 0 < ctrls.Length Then DirectCast(ctrls(0), TextBox).Text += "***" End If
複数のコントロール検索
[方法1] 'ボタンのコントロールを検索する '子コントロールは検索できない For Each btn As Button In Me.Controls.OfType(Of Button)() btn.Text = "***" Next ------------------------------------------------------------------------- [方法2] '指定コントロールを検索する Dim myButtons = {Button1, Button2, Button3, Button4, Button5, Button6} For Each btn In myButtons btn.Text = "***" Next ------------------------------------------------------------------------- [方法3] For no As Integer = 1 To 10 Dim btns = Me.Controls.Find("button" & no, True) If btns.Length > 0 Then btns(0).Text = "***" End If Next
全コントロール検索
Public Function getAllControls(ByVal top As Control) As Control() Dim ctrls As ArrayList = New ArrayList For Each c As Control In top.Controls ctrls.Add(c) ctrls.AddRange(getAllControls(c)) Next Return DirectCast(ctrls.ToArray(GetType(Control)), Control()) End Function --------------------------------------------------------------------------- [呼び出し側] Dim ctrls As Control() = getAllControls(Me)