0

有点难以解释,但有没有办法做类似的事情:

control1.ShownEditor += EventHandler;

...

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

3 回答 3

2

将您的事件保存到 EventHandler 委托。

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

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

control1.ShownEditor += Myevent;
control2.ShownEditor += Myevent;
于 2012-10-13T15:08:19.517 回答
2

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

于 2012-10-13T15:12:53.150 回答
1

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

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

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

另一种有害的解决方案可能是通过 提取委托Reflection,但正如我所说,这实际上很危险,请看 Hans Passant 的这个答案:是否可以从一个控件“窃取”事件处理程序并将其交给另一个控件?.

于 2012-10-13T15:28:35.563 回答