通常、フォームに表示するコントロールは、作成時に固定とされることが多い。しかし、ある項目の値によって、コントロールの数を増減させたい場合や、入力した後に新しい入力項目を追加したいといった要望がある。
こうした要望を満たすため、プログラムを実行するときに動的にコントロールを追加する方法がある。
'コントロールを追加する関数
Sub AddTextBox()
 '追加するコントロールの生成
 Dim wkTextBox As New Windows.Forms.TextBox()
 wkTextBox .Location = New System.Drawing.Point(10, 10)
 wkTextBox.Name = "TextBoxA"
 wkTextBox.Size = New System.Drawing.Size(80, 20)
 wkTextBox.TabIndex = 0
 wkTextBox.Text = "DynamicText"

 'コントロールを追加する
 Controls.Add(MyTextBox)
 '追加したコントロールとイベントの関連付け
 AddHandler wkTextBox.DoubleClick, AddressOf wkTextBox_DoubleClick
End Sub

'追加コントロールのイベント
Private Sub wkTextBox_DoubleClick(ByVal sender As Object, _
  ByVal e As System.EventArgs)
 MsgBox("wkTextBox doubleClicked !")
End Sub

【補足事項】
・追加するコントロールは、Newで生成すること!
・Controls.Add(コントロール)でフォームに追加する。
・AddHandlerでコントロールのイベントと関数を対応させる。
 AddHandlerの構文は、以下の通り。 
 《構文》
    AddHandler コントロール.イベント, AddressOf 実行する関数名

・AddHandlerの詳細は、記事「【VB.NET】イベントハンドラを追加する」を参照して下さい。
・追加コントロールのイベントは、通常のコントロールイベントと引数の型、個数が同じ必要がある。

この方法を使えば、チェックボックスやコンボボックス等の値によって、動的にコントロールの数を変更することができるので、柔軟性のある画面を作成できる。
但し、可読性や保守性が低下するので、注意すること!