加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中清除或检查事件处理程序

发布时间:2020-12-15 23:59:55 所属栏目:百科 来源:网络整理
导读:我有一些C#代码可以更新对象的某些属性.我定义了一个事件处理程序,以帮助我在更新过程完成时做出响应.不幸的是,我已经了解到这个事件多次被解雇.我怀疑这种情况正在发生,因为事件处理程序正在错误的时间设置.目前,它的设置如下: myObject.Update_Succeeded
我有一些C#代码可以更新对象的某些属性.我定义了一个事件处理程序,以帮助我在更新过程完成时做出响应.不幸的是,我已经了解到这个事件多次被解雇.我怀疑这种情况正在发生,因为事件处理程序正在错误的时间设置.目前,它的设置如下:

myObject.Update_Succeeded += new EventHandler(myObject_Update_Succeeded);

由于代码的复杂性,我很难跟踪它应该设置的位置.我想只设置它之前没有设置的事件处理程序.因此,我想做这样的事情:

ClearEventHandlers(myObject);

要么

myObject.Update_Succeeded = null;
myObject.Update_Succeeded += new EventHandler(myObject_Update_Succeeded);

有没有办法完成我正在尝试的东西?

谢谢!

解决方法

您应该能够使用减法运算符删除处理程序,如下所示

myObject.Update_Succeeded -= new EventHandler(myObject_Update_Succeeded);

或者如果您有疑问,请检查一下删除所有事件处理程序的方法

How to remove all event handlers from a control

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读