2011-03-03 9 views
1

単純なリストボックスのみのフォームがあります。リストボックスは完全ドッキングされ、FormのFormBorderStyleはNoneに設定されます。WinFormにフルドッキングリストボックスが1つしかない場合、MouseLeaveは起動しません。

MouseLeaveイベントをフォームに添付すると、そのイベントは発生しません。

しかし、リストボックスをドッキング解除してサイズを変更すると、少なくともフォームの一部が表示され、フォームの表示可能な部分にマウスを移動すると、すべてマウスイベントが再び発生します。

フォームがフルドッキングリストボックスのみで構成されていてもマウスイベントを受け取るにはどうすればよいですか?

ありがとうございました

+0

代わりにリストボックスにイベントを添付することはできますか? – Blorgbeard

+0

フォーム全体が別のコントロールで覆われていると、フォームのマウスイベントを取得できないことは明らかです。すべてがリストボックスに表示されます。 –

+0

基本的に、WinFormsにはイベントバブルはありません。あれは正しいですか? –

答えて

1

あなたのマウスがフォームに入力しなかったので、それは火災ではありません、それはリストボックスに入力します。したがって、リストボックスコントロールでMouseLeaveイベントを使用する必要があります

+0

私がリストボックスにイベントを添付していない理由は、他の瞬間にリストボックスになっていない可能性があるということです。私はフォームのプライベート変数にコントロール(いずれかのフォームを埋める)への参照を保存し、それにイベントをアタッチ/デタッチします。とにかくありがとう。 –

0

私は考えられません。コントロールはイベントを処理するため、フォームにバイパスされません。