tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Formの全てのコントロールのTextをクリアするには
投稿日: 2007/08/24(Fri) 22:57
投稿者びぎ
 こんばんは。

VB2005にてFormの全てのコントロールのTextをクリアするのに

Dim oControl AS Control
Dim oControl2 AS Control

For Each oControl In Me.Controls
  IF oControls.Count > 1 Then
     For Each oControl2 In oControl.ControlS
         oControl2.Text = ""
     Next
  Else
     oControl.Text = ""
  END IF
Next
とコーディングしました。
IF oControls.Count > 1 Then
     For Each oControl2 In oControl.ControlS
         oControl2.Text = ""
     Next
としているのは,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が何階層になっているか
見ていくのも大変です。

何かスッキリとした書き方はないでしょうか?
御指導下さいますよう、よろしくお願いいたします。    

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。