フォームに配置されているコントロールを取得する方法について説明する。
フォームオブジェクトには、Controlesプロパティがある。
これを利用すれば、フォームに配置されているコントロールを取得することができる。

以下、サンプル。
'確認に使用するフォーム
'何かしらのコントロールを配置しておくこと

Public Class Form1
Inherits System.Windows.Forms.Form
 :(省略)
End Class

'実行するためのクラス
Public Class FormControlSample
 Public Shared Sub Main()
  Dim frm As New Form1
  For Each FormItem As Control In frm.Controls
   Console.WriteLine("{0}", FormItem.Name)
  Next
 End Sub
End Class

上記のコードを実行すると、フォーム上に配置されているコントロールの一覧を表示することができる。
但し、Panelコントロール等のように、コントロール内に別のコントロールを配置している場合、コントロール内に配置しているコントロールを取得することができないという問題がある。
これを解決するためには、以下のようにすれば良い。

'実行するためのクラス
Public Class FormControlSample
 Public Shared Sub Main()
  Dim frm As New Form1
  For Each FormItem As Control In frm.Controls
   Console.WriteLine("{0}", FormItem.Name)
   For Each CtrlItem As Control In FormItem.Controls
    Console.WriteLine("{0}", CtrlItem.Name)
   Next
  Next
 End Sub
End Class

フォームオブジェクト同様、各コントロールにもControlsプロパティが存在する。
これを利用すれば、コントロール内に配置したコントロールを取得することができる。
しかし、上記にも問題があり、Panelコントロールの中にPanelコントロールを配置した等の場合に対処できない。
こういった場合を考慮するならば、以下のように再帰的なコードを記述する必要がある。

'実行するためのクラス
Public Class FormControlSample
 Public Shared Sub Main()
  Dim frm As New Form1
  GetControlItem(frm)
  '以下でも可能
  'For Each FormItem As Control In frm.Controls
  ' Console.WriteLine("{0}", FormItem.Name)
  ' コントロールに内包されるコントロールがあるか?
  ' If FormItem.Controls.Count > 0 Then
  '  GetControlItem(FormItem)
  ' End If
  'Next

 End Sub
 
 Private Sub GetControlItem(Ctrl As Control)
  For Each CtrlItem As Control In Ctrl.Controls
   Console.WriteLine("{0}", CtrlItem.Name)
   'コントロールに内包されるコントロールがあるか?
   If CtrlItem.Controls.Count > 0 Then
    GetControlItem(CtrlItem)
   End If
  Next
 End Sub
End Class

【補足事項】
・Contorlsプロパティを利用することでコントロールを取得する。
・コントロールを扱うには、Controlクラスを利用する。
・コントロールのプロパティ値(TextやName等)の情報を取得できる。