説明するのはちょっと難しいですが、次のようなことをする方法はありますか?
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によるこの回答を見てください。あるコントロールからイベントハンドラーを「盗んで」、別のコントロールに渡すことは可能ですか?。