ユーザーがフォームとそのすべての子コントロールの上にマウスを移動したとき、およびフォームから離れたときを検出する必要があります。MouseEnter
フォームのとMouseLeave
イベントを試しました。Windowsメッセージの&WM_MOUSEMOVE
とWM_MOUSELEAVE
&WM_NCMOUSEMOVE
のWM_NCMOUSELEAVE
ペアを試しましたが、希望どおりに機能しないようです...
私のフォームのほとんどは、さまざまな種類の子コントロールで占められており、表示されるクライアント領域はあまりありません。これは、マウスを非常に速く動かすと、マウスがフォーム内にあるにもかかわらず、マウスの動きが検出されないことを意味します。
たとえば、下部にドッキングされているTextBoxがあり、デスクトップとTextBoxの間に、非常に小さな境界線しかありません。マウスを下からTextBoxにすばやく移動すると、マウスの移動は検出されませんが、マウスはTextBox内、つまりフォーム内にあります。
どうすれば必要なことを達成できますか?