使用它从控件分配EventHandler

时间:2012-10-13 15:07:06

标签: c# event-handling

有点难以解释,但是有办法做一些事情:

control1.ShownEditor += EventHandler;

...

control2.ShownEditor += control1.ShownEditor; //wrong

3 个答案:

答案 0 :(得分:2)

将您的活动保存到EventHandler委托。

EventHandler Myevent = () => {/*event handling code here*/};

将事件处理程序委托分配给控件事件

control1.ShownEditor += Myevent;
control2.ShownEditor += Myevent;

答案 1 :(得分:2)

我认为你需要像this这样的东西来绑定EventHandler。 当你有处理程序时,你可以轻松地将它绑定到事件。

答案 2 :(得分:1)

简单地说:您不能使用控件事件的EventHandler并将其分配给另一个事件。所以这是不可能的:

control2.ShownEditor += control1.ShownEditor; //wrong

唯一的方法是单独创建EventHandler并将其分配给两个控件的事件。

另一个有害的解决办法可能是通过Reflection提取代理人,但正如我所说,它实际上很危险,look this answer by Hans Passant: Is it possible to “steal” an event handler from one control and give it to another?