イベントNumericUpDowns
を処理して現在のマウス座標で2 つを更新するカスタム コントロールがあります。MouseMove
ただし、イベントが発生してはならない場合でもイベントが発生するという奇妙なケースを経験しましたMouseMove
(ワイヤレス マウスをオフにし、トラックパッドを無効にしました)。そのためMouseMove
、マウスが動かなくても発生します。
簡単なチェックを行い、これらの「ゴースト」MouseMove
イベント間でマウス ポインターの位置が変わらないことを確認しました。これを利用して、イベントを処理するメソッドがポインターが実際に移動したときにのみ呼び出されるようにしたので、アプリケーションの要件を満たすことができました。
ただし、すべてのマウス/トラックパッドが無効になっているときに MouseMove イベントを発生させるものがわからないため、まだ困惑しています。Visual Studio のコール スタックを見ると、MouseMove
イベントの発生は、まるでマウスが実際に動いたかのように "本物" であるように思えますMouseMove
。 .
この理由について何か提案はありますか?ありがとうございました!
MouseMove
編集:キングキングの提案に従って、メッセージが検出されるたびに文字列を出力するようにコードを変更しました。マウスがオフでポインターがコントロールの上にあるときに、Alt-Tab キーを押してアプリケーションを切り替えると、文字列が出力されることに気付きました。おそらく、これはアプリケーションが再描画されたことと関係がありますか?