以编程方式取消挂钩事件处理程序

时间:2012-04-27 22:00:24

标签: c# winforms events event-handling textchanged

我想有条件地取消挂钩事件处理程序。这是正确的方法:

tb.TextChanged -= textBoxIntName_TextChanged;

这似乎是明智的,因为它需要连接起来:

tb.TextChanged += textBoxIntName_TextChanged;

...但似乎对应于" Delphi方式"使得更多或更有意义(但唉,它不编译):

tb.TextChanged = nil;

1 个答案:

答案 0 :(得分:5)

您无法分配事件 - 只有附加(+ =)和删除( - =)操作可供客户使用。

详细了解活动here

C#规范says

  

由于+ =和 - =是事件允许的唯一操作   在声明事件的类型之外,外部代码可以添加和   删除事件的处理程序,但不能以任何其他方式获取或   修改事件处理程序的基础列表。