在 VB .NET 函数的开头,我删除了一个事件处理程序并在函数末尾再次添加它,因为函数的代码会触发这些事件,我不希望它们在函数持续时间内触发。这通常有效,但我遇到了一些情况,即使我已经删除了该事件,它仍然会被调用。有时在函数开始时将其删除两次会修复它,但有时无论我删除多少次,它仍然会触发。关于可能导致这种情况的任何想法?
编辑
该代码位于具有虚拟模式 datagridview 的表单中。我想运行一些操作来触发 datagridview 的 CellValueNeeded 事件,而不触发该事件(因为它会干扰)。
Public Sub DoEventRaisingStuff()
RemoveHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
'Do things that would trigger CellValueNeeded
AddHandler grid.CellValueNeeded, AddressOf grid_CellValueNeeded
End Sub
多次删除处理程序并不会阻止事件触发,因此它似乎不会在其他地方意外添加多次。
有没有办法找出哪些事件处理程序处于活动状态?