获取事件委托列表 [英] Get a list of Delegate on Event

查看:72
本文介绍了获取事件委托列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好,我要做的是获取与事件相关的所有委托.

Ok, What I want to do is retreive all the delegate that is attached to an event.

假设我要将几个删除项附加到按钮上:

Let's say i'm attaching several deletages to a button:

IE:

myButton.Click + = 新建 系统. EventHandler ( .myButtonClick1_Click);

myButton.Click += new System.EventHandler(this.myButtonClick1_Click);

myButton.Click + = 新建 系统. EventHandler ( .myButtonClick2_Click);

myButton.Click += new System.EventHandler(this.myButtonClick2_Click);

myButton.Click + = 新建 系统. EventHandler ( .myButtonClick3_Click);

myButton.Click += new System.EventHandler(this.myButtonClick3_Click);

myButton.Click + = 系统. EventHandler ( this .myButtonClick4_Click);

myButton.Click += new System.EventHandler(this.myButtonClick4_Click);

有什么办法可以在以后的代码中获得我的4个eventHandler吗?

类似ArrayList的东西 EventHandler myButton.Click.GetAllDelegates(); ????

Something like ArrayList EventHandler myButton.Click.GetAllDelegates(); ????

我需要获取列表,因为我想从与该事件关联的点清除所有委托,但是由于我无权访问该事件,因此无法编写myButton .Click = null; //清除所有事件.

对那个有任何想法吗?

谢谢.

thanks.

推荐答案

EventHandler handler = myButton.Click;
Delegate []代表= e.GetInvocationList();

EventHandler handler = myButton.Click;
Delegate[] delegates = e.GetInvocationList();


这篇关于获取事件委托列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆