Я пишу windows приложение для управления серверами (apache, nginx, tomcat, et c) для разработчиков. Я создаю элементы управления динамически для каждого сервера, поскольку они определяются конфигурацией. Мне удалось создать обработчики для кнопок и списков без проблем, но обработчик для флажков не запускается. Я думаю, что делаю то же самое, но, очевидно, я что-то упускаю.
Это обработчик. Существует только один для всех флажков
Private Sub AddTheCheckboxClick(rCheckBox As CheckBox)
AddHandler rCheckBox.Click, Sub(rSender, rEventargs)
Cursor = Cursors.WaitCursor
Dim lStatus As Boolean = False
Cursor = Cursors.Default
'do some stuff here for the relevant server
End Sub
End Sub
Я помещаю разрыв в верхней части обработчика, запускаю приложение, нажимаю на флажок, и он не срабатывает.
Этот код копирует элемент управления из шаблона в соответствующее место на экране, а затем добавляет обработчик. Весь набор элементов управления. создается один раз для сервера.
'Service checkbox
.Controls.Add(CopyPlaceControl(lDinamicListview, chkServerService, lLocation, True, lGenericServer))
AddTheCheckboxclick(chkServerService)
'Server switch and button click event handler
lNewServerSwitch = CopyPlaceControl(lDinamicListview, bServerSwitch, lLocation, True, lGenericServer)
.Controls.Add(lNewServerSwitch)
AddThebuttonclick(lNewServerSwitch)
Я видел ответ на аналогичный запрос для ASP, и он был разрешен путем задания для свойства AutoPostback значения true, но это свойство не существует в vb. net и это, вероятно, не имеет значения в моем контексте.
Я также попытался явно вызвать событие в коде, просто чтобы проверить его срабатывание при вызове, но я не нашел никакого способа сделать это. Для кнопки это просто, как в .Performclick (), но я не нашел ее для флажка.