这个问题在这里已经有了答案:
9年前关闭。
Possible Duplicate:
Is it possible to “steal” an event handler from one control and give it to another?
有没有办法从事件中获取事件处理程序的引用?
例如:
EventHandler evt = btn.Click; // or another way ?
(这里
EventHandler
是委托(delegate),Click
是 Button 的事件)
最佳答案
如果您定义了事件并且访问它的代码在同一个类中(即不是派生的),那么您可以访问它并获取调用列表。
MulticastDelegate m = (MulticastDelegate)MyEvent;
var list = m.GetInvocationList();
foreach(Delegate d in list)
{
// look at the delegate
}
对于您想要访问在您无法修改其代码的类中定义的事件的调用列表的情况......
关于c# - 从事件中获取事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801580/