質問: false; } ```
回答: メインの回答の前に: マウスの移動でフォーム自身の表示/非表示を制御するのは、筋が悪い感じです。 いったんフォームを非表示にしたら、それ以後のイベントを受け取る対象が(タスクバーのアイコンくらい?しか)無いのでは? その処理の目的が何かは分かりませんが、XY問題のような気がします。 回答としては: この辺の記事を参考に、FormのWndProcをオーバーライドして、WM_NCxxxxといったメッセージの処理を組み込めば出来るでしょう。 `NC`はnonclient area(非クライアント領域)の略号でタイトルバー、メニューバー、ウィンドウフレームなどのことです。 2つ目の掲示板記事のように、単純に1つのメッセージ通知だけに閉じた処理では済まない場合もあるようですが。 WindowsフォームでWindowsメッセージを直接処理するには? > > だが、すべてのWindowsメッセージがWndProcメソッドでイベントに置き換えられるわけではない。このため少し特殊な処理をフォームに実装したい場合などでは、プログラムで直接Windowsメッセージを取得し処理しなければならないこともある。 > > > > > **WndProcメソッドのオーバーライド** > > フォームに送られてくるWindowsメッセージを直接プログラムで処理したい場合には、Formクラス(System.Windows.Forms名前空間)のWndProcメソッドを自分のフォームでオーバーライドすればよい。 > > > フォームタイトルバーのマウスイベント取得について How to handle Form caption right click Capture mouse touch the title bar of win form Mouse Input Notifications 非クライアント領域 > > The system sends a WM_NCPAINT message to the window whenever a part of the nonclient area of the window, such as the title bar, menu bar, or window frame, must be updated. > > > > > ウィンドウの非クライアント領域 (タイトルバー、メニューバー、ウィンドウフレームなど) の一部が更新されるたびに、システムからウィンドウに WM _ NCPAINT メッセージが送信されます。 > > > あるいはこちらの記事の私の回答のようにもう一段低レベルのSetWindowsHookExのLowLevelMouseProc(WH_MOUSE_LL)登録でマウスイベント処理を行うという手も出来ないことでは無いでしょう。 C# コントロールが重なっているフォームでマウスのEnterとLeaveを正しく拾いたい