Form上のすべてのコントロール名の取得

タグの編集
投稿者 初心者です  (社会人) 投稿日時 2010/1/27 19:30:31
こんにちは。VB2008を使っていますが、Form上のすべてのコントロール名(ラベル名やボタン名)の取得したいのですが手も足も出ません。だれかたすけてーーー
投稿者 YuO  (社会人) 投稿日時 2010/1/27 19:40:02
Form,というかControlのControlsプロパティから取得したControlCollectionに,そのコントロールの直接の子コントロールが含まれます。
MSDN: Control.Controls プロパティ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.controls.aspx
なので,For Each等で走査することによって,Control.Nameを取得する事ができます。

子ではなく子孫であるならば,出てきたControlのControlsに対して再帰的に走査する事で,子孫まで調べる事ができます。
投稿者 初心者  (社会人) 投稿日時 2010/1/27 20:49:55
できましたーーーー!
Yuoさん、ありがとうございました。
投稿者 ぽん太  (小学生) 投稿日時 2010/1/28 02:46:32
できたコードを見せて。
投稿者 初心者  (社会人) 投稿日時 2010/1/28 03:16:31
できたコードです。


 For Each ctrl As Control In Me.Controls       'フォーム上のすべてのコントロールを取得
            If TypeOf ctrl Is Label Then        'ラベルのみをフィルタにかける
                Label1.Text = Label1.Text & " " & ctrl.Name     'ラベル名を表示
            End If
        Next

こんな感じです。
投稿者 ぽん太  (小学生) 投稿日時 2010/1/29 05:54:18
うむ。
コードをたくさん書くことが肝要です。
ガンバロ ☆_☆