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

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 ぽん太  (小学生) 投稿日時 2010/1/29 05:54:18
うむ。
コードをたくさん書くことが肝要です。
ガンバロ ☆_☆
投稿者 初心者  (社会人) 投稿日時 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/28 02:46:32
できたコードを見せて。
投稿者 初心者  (社会人) 投稿日時 2010/1/27 20:49:55
できましたーーーー!
Yuoさん、ありがとうございました。
投稿者 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 19:30:31
こんにちは。VB2008を使っていますが、Form上のすべてのコントロール名(ラベル名やボタン名)の取得したいのですが手も足も出ません。だれかたすけてーーー