- 締切済み
コントロールに邪魔されずにイベントを取得したい
visual studio 2008 express edition C#3.5 を使用しています。 http://ranobe.com/up/src/up363465.jpg のように buttonが乗ったsplitContainer1のPanel1(左側)に private void splitContainer1_Panel1_MouseEnter(object sender, EventArgs e) { MessageBox.Show("Test"); } というマウスがのったらメッセージボックスを表示するイベントを設定しています。 ただこれはbuttonの上だと反応しません・・・ なんとかしてbuttonというか乗せてるコントロールに邪魔されずに反応させることはできないでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- burroughs6
- ベストアンサー率76% (29/38)
回答No.2
フォームのコンストラクタで、splitContainer1のPanel1上のコントロールにイベントハンドラを追加します。 public Form1() { InitializeComponent(); foreach (Control x in splitContainer1.Panel1.Controls) { x.MouseEnter += new System.EventHandler(this.splitContainer1_Panel1_MouseEnter); } }
- burroughs6
- ベストアンサー率76% (29/38)
回答No.1
お礼
ご返答ありがとうございます。 これも便利で為にはなったのですが、 そうではなくて、自分が言いたいのはControlsにある要素一つ一つを弄るのでなく Panel1側(つまり一箇所)だけでなんとかそういう機能を実現できないかぁと思いました。 なんでそれに拘っているかというと、例えば Controlsに追加するのがbuttonなどのコントロールではなく form(TopLevel=falseで追加できます)だった場合に 摘むところのキャプションバーの上だとイベントが反応しないからです。 なのでPanel上に乗っている(重なっている)コントロールに関係なく そのPanelの範囲ならイベントを効かせたいと思いました。 そういう方法はできないのでしょうか?