У меня есть большое количество кнопок на форме (144 кнопки). Имена каждой кнопки представляют собой комбинацию разных факторов.Dynamically AddHandler
Мне нужно, чтобы все они делали то же самое при нажатии. У меня есть это событие под Private Sub под названием «ClickButton».
Я хочу использовать цикл, чтобы добавить AddHandler каждую кнопку в событие «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. Кажется, он не может найти какую-либо кнопку под этим именем, что является странным, потому что я использую тот же код в других разделах, и он находит кнопку.
В какой момент в жизненном цикле страницы работает эта программа? В какой момент вы создаете кнопки? – jmaglio
Есть ли другие кнопки в одной форме? Другими словами, будет ли установка обработчика всех кнопок на форме работать для вас? – svick
@jfmags Кнопки не динамически создаются, они создаются с помощью формы. –