tagCANDY CGI VBレスキュー(花ちゃん) - Form上の全てのコントロールに同時にアクセスする(VB.NET) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
Form上の全てのコントロールに同時にアクセスする(VB.NET)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

Form上の全てのコントロールに同時にアクセスする(VB.NET) [No.140の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/26 22:29
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][自アプリ関係][]                                  *
* キーワード:名前空間:System.Windows.Forms,HasChildren プロパティ,               *
***********************************************************************************

元質問: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が何階層になっているか見ていくのも大変です。

-----------------------------------------------------------------------------------
Re: Formの全てのコントロールの.. - 花ちゃん 2007/08/25-00:34 No.6144
-----------------------------------------------------------------------------------
下記のように再帰的に実行すればいいのでは。
(別途エラー処理をするようにして下さいね。)
又下記サンプルは、他に使っていた物を流用して投稿しておりますので、メソッド名等は
目的に合わせて変更して下さい。

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

-------------------------------------------------------------------------------------
全てのコントロールのフォント関係を一斉に変更する場合やバックカラーの設定等用途は色々
あるかと思います。
--------------------------------------------------------------------------------------
上記の実行結果の画面(画像をクリックすると元のサイズで見られます。)

 デザイン時                   実行時
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ