В начале функции VB .NET я удаляю обработчик событий и добавляю его снова в конце функции, потому что код функции запускает эти события, и я не хочу, чтобы они запускались на протяжении всей функции. Обычно это работает, но я столкнулся с несколькими ситуациями, когда событие все еще вызвано, хотя я его уже удалил. Иногда удаление его дважды в начале функции фиксирует его, но в других случаях, независимо от того, сколько раз я его удаляю, он все еще срабатывает. Любые идеи о том, что может быть причиной этого?Обработчик событий не удаляет себя?
Редактировать
Код в форме, которая имеет виртуальный режим DataGridView. Я хочу запустить некоторые операции, которые вызовут событие CellValueNeeded для datagridview, если это событие не будет запущено (потому что оно будет мешать).
Public Sub DoEventRaisingStuff()
RemoveHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
'Do things that would trigger CellValueNeeded
AddHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
End Sub
Удаление обработчика несколько раз не мешает событие от стрельбы, так что это, кажется, не добавить несколько раз куда-то случайно.
Есть ли способ узнать, какие обработчики событий активны?
Если вы публикуете код, вам должно быть проще помочь вам. –
Это правда, но я не знаю, что писать, так как я не знаю, где проблема, и программа довольно большая. Мне было просто интересно, если кто-то еще сталкивался с этой проблемой раньше и что исправил ее для них. – davidscolgan
Вы могли бы хотя бы опубликовать код для конкретной функции, о которой вы говорите. –