有点难以解释,但有没有办法做类似的事情:
control1.ShownEditor += EventHandler;
...
control2.ShownEditor += control1.ShownEditor; //wrong
有点难以解释,但有没有办法做类似的事情:
control1.ShownEditor += EventHandler;
...
control2.ShownEditor += control1.ShownEditor; //wrong
将您的事件保存到 EventHandler 委托。
EventHandler Myevent = () => {/*event handling code here*/};
将事件处理程序委托分配给控制事件
control1.ShownEditor += Myevent;
control2.ShownEditor += Myevent;
我认为你需要这样的东西来绑定EventHandler
。当您拥有处理程序时,您可以轻松地将其绑定到事件。
简单地说:您不能使用EventHandler
控件的事件并将其分配给另一个事件。所以这是不可能的:
control2.ShownEditor += control1.ShownEditor; //wrong
唯一的方法是EventHandler
单独创建一个并将其分配给两个控件的事件。
另一种有害的解决方案可能是通过 提取委托Reflection
,但正如我所说,这实际上很危险,请看 Hans Passant 的这个答案:是否可以从一个控件“窃取”事件处理程序并将其交给另一个控件?.