元質問:Formの全てのコントロールのTextをクリアするには - びぎ 2007/08/24 No.6143 PanelにTextBoxを配置すると外側のFor Each oControl In Me.Controls ではクリアできないからです。 そこで、聞きたいのはPanelの中にPanelを配置しそのPanelにTextBoxを配置するいったことをするともう1つ下位をFor Each する必要があります。 もう1つPanelを配置すると、またその下位をFor Each してクリアします。 省略して書くと For Each oControl In Me.Controls For Each oControl2 In oControl.ControlS For Each oControl3 In oControl2.ControlS For Each oControl4 In oControl3.ControlS といった感じでしょうか。 実際、細かい画面になるとPanelが何階層になっているか見ていくのも大変です。
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click GetAllControls(Me) End Sub
Private Sub GetAllControls(ByVal control As Control) If control.HasChildren Then For Each childControl As Control In control.Controls GetAllControls(childControl) 'テキストボックスだけにアクセスしたい場合 ' If TypeOf childControl Is TextBox Then childControl.Text = "花ちゃん" ' End If Next childControl End If End Sub