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