0

可能重复:
如何取消注册“匿名”事件处理程序

在我正在使用的 c# 方法中

this.Loaded+=(sender,e)=>{ my code }; 

用于在加载时执行代码。但我的问题是我不知道如何取消注册这个连锁事件。我尝试了类似的东西

this.Loaded-=(sx,ex)=>{}; 

但该活动并未取消注册。任何人请帮我解决这个问题。

4

2 回答 2

6

此代码使用附加到事件的方法创建匿名类型,因此要从该事件中分离,您需要提供相同的方法而不是新方法。

所以试试这个:

EventHandler handler = (sender,e)=>{...};
Loaded += handler;
Loaded -= handler;

附加到this.事件的方式通常有很好的选择,例如

override OnLoaded(EventArgs args)
于 2013-01-07T10:39:21.820 回答
2

不能取消注册内联事件订阅。如果您想取消注册,请使用常规delegate/handler订阅。

于 2013-01-07T10:38:56.427 回答