【发布时间】:2009-03-25 02:01:49
【问题描述】:
我遇到了一个奇怪的错误,即触发了不需要的事件。我可以跟踪代码并看到“onRowLeave”事件处理程序正在使用 -= 语法被删除,然后下一行 DataSource 被更改,这导致“OnRowLeave”处理程序被触发!
所以看来删除不起作用。
我可以说它没有以某种方式再次被添加,因为我在所有用 += 添加它的地方都有一个断点,而且它没有命中那些。
我在想,也许它被添加了两次,并且只删除了一次……这会导致它吗?有什么方法可以让我在调试器中看到处理程序?
【问题讨论】:
-
是的,这会导致它。注意 OnRowLeave() 是一个方法,而不是一个事件。
-
那么两次添加同一个handler有效果吗?
-
如果是这样,我该如何避免呢?在添加之前将其删除?