Windows.Form上に動的にボタンコントロールを作成して、そのイベントをとるプログラムを
作る機会がありました。
静的に作成したコントロールについてはHandlesでイベントハンドラ
を記述できますが、動的に作成したコントロールの場合は
イベントをハンドリングするメソッドをコントロールに登録
する必要があります。
それにはAddHandlerとAddressOf を使います
--------------
Private Sub MakeButton ()
'// ボタンを10個つくる
For i As Integer = 1 To 10
'// ボタンを作成
Dim btn As New Button
With btn
.Left = 11 * i
.Top = 10
.Width = 10
.Height = 10
.Text = i.ToString()
End With
'// イベントハンドラを登録
AddHandler btn.Click, AddressOf btn_Click
'// Formに出力
Me.Controls.Add(btn)
Next
End Sub'// 動的ボタンのイベントハンドラ
Private Sub btn_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs)
'// 押されたボタンはsenderに渡されてきます
Dim btn As Button = CType(sender, Button)
System.Diagnostics.Debug.WriteLine(btn.Text & "が押されました")
End Sub