フォームに多数のボタン (144 個のボタン) があります。各ボタンの名前は、さまざまな要因の組み合わせです。
押されたときにすべて同じことをする必要があります。「ClickButton」というプライベート サブの下にこのイベントがあります。
「ClickButton」イベントに各ボタンを AddHandler するために、ループを使用したいと思います。
ただし、最初に、各ボタンに対処する必要があります。これを行うには、ループ内で動的に名前を作成します。
Dim PeriodRoomID As New Button
Dim cntrl() As Control
For Each Row In dsAllRooms.Tables("sqlAllRooms").Rows
For Count = 1 To 13
RoomID = Row.Item(0)
'This is where the name of each room is dynamically created.
'It is stored in PeriodRoomID.name
PeriodRoomID.Name = "R02" & RoomID.PadLeft(3, "0"c) & Count
cntrl = Me.Controls.Find(PeriodRoomID.Name, True)
AddHandler cntrl(0).Click, AddressOf ClickButton
Next
Next
問題は、何も起こらないことです。AddHandler が機能しません。ただし、ボタンの名前の1つを単純に書くと、
AddHandler R020011, AddressOf ClickButton
その後、それは機能します。Me.Controls.Find で問題が発生しています。他のセクションで同じコードを使用してボタンを見つけるため、その名前でボタンを見つけることができないようです。