我在表单上有大量按钮(144 个按钮)。每个按钮的名称是不同因素的组合。
我需要他们在按下时都做同样的事情。我在一个名为“ClickButton”的私有子下有这个事件。
我想使用一个循环,将每个按钮添加到“ClickButton”事件中。
然而,首先,我需要解决每个按钮。我通过在循环中动态构造它们的名称来做到这一点。
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 不起作用。但是,如果我只是写一个按钮的名称;
AddHandler R020011, AddressOf ClickButton
然后它确实有效。Me.Controls.Find 出了点问题。它似乎无法找到该名称下的任何按钮,这很奇怪,因为我在其他部分使用相同的代码并且它找到了按钮。