- 締切済み
コントロールのイベントの透過
VB.net/C# .NET Framework 2.0で開発しております。 いま、Panel等コンテナコントロールの上に子コントロールが乗っているとして、この時子コントロールの指定したイベントが発生した際に、親コンテナの同じイベントを発生させたいと思っていますが、なかなかスマートなやり方が見つからずに悩んでおります。 子配置の際にAddHandler等でごりごりイベントハンドラを指定しまくれば、出来ることはできるのですが…それ以外のやり方としてどんなものがあるのか、知りたくなって質問させていただきました。 GUIの開発においてこういった要望はそれなりにあると思うのですが、皆様はどのようにして解決してらっしゃるのでしょうか? ご教示下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.2
そうですね プロパティの変更でそのような動きとなると子コントールの派生クラスを作って親のハンドラを呼ぶようにしないといけないかと 少々趣は違いますが FormクラスのKeyPreviewプロパティのような動きということでしょうか ・・・ WndProcをオーバーライドするか、個々のProtectedイベントで親イベントをコールするような方向かと
- phoenix343
- ベストアンサー率15% (296/1946)
回答No.1
同じ処理になるものは関数化しておいて、 全ての同じ処理させるイベント関数でその関数を呼ぶ。 ぐらいにしか思いつきませんが?
お礼
ご回答ありがとうございます。説明が悪かったかもしれません。イベントハンドラ割り当ての部分をどうにかして自動化できないか、という点についてお聞きしたいです。例えばリフレクションを活用することによってイベント割り当てを自動化できないかなどと考えてもみましたが、このために実行時負担をかけるのもどうかなと思いまして… つまり実現したいことは、 1.親コンテナの上に子コントロールを配置した状態で 2.子の特定のプロパティを変更する、等の簡単な操作だけで、 3.子のClickイベントが自動的に親のClickイベントハンドラに割り当てられる です。 宜しくお願い致します。
補足
すみません、補足を付けるべき所を誤ってお礼をつけてしまいました。