問題タブ [mouseevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - マウスがフォーム全体と子コントロール内にあるかどうかを検出するにはどうすればよいですか?
ユーザーがフォームとそのすべての子コントロールの上にマウスを移動したとき、およびフォームから離れたときを検出する必要があります。MouseEnter
フォームのとMouseLeave
イベントを試しました。Windowsメッセージの&WM_MOUSEMOVE
とWM_MOUSELEAVE
&WM_NCMOUSEMOVE
のWM_NCMOUSELEAVE
ペアを試しましたが、希望どおりに機能しないようです...
私のフォームのほとんどは、さまざまな種類の子コントロールで占められており、表示されるクライアント領域はあまりありません。これは、マウスを非常に速く動かすと、マウスがフォーム内にあるにもかかわらず、マウスの動きが検出されないことを意味します。
たとえば、下部にドッキングされているTextBoxがあり、デスクトップとTextBoxの間に、非常に小さな境界線しかありません。マウスを下からTextBoxにすばやく移動すると、マウスの移動は検出されませんが、マウスはTextBox内、つまりフォーム内にあります。
どうすれば必要なことを達成できますか?
c# - WPF マウス クリック オフ イベント
すべてのコントロールにマウス クリック イベントがあることは知っていますが、マウス クリックがコントロール上にない場合を判断する方法はありますか?
javascript - マウスイベントから絶対「上」位置を取得する (Javascript/jQuery)
mouseenter/mouseleave イベントで、テーブルのセルの絶対「上」位置を取得したいと考えています。
これまでのところ、イベントは次のように添付されています。
c# - WPF-そのイベントを発生させたコンポーネントの外部でマウスイベントを処理する方法は?
コンテクスト:
キャンバスに物を描くアプリケーションがあります。たとえば、ユーザーがクリックすると黒い点が表示されます。しかし、メインウィンドウコードのイベントハンドラーでcanvasによって発生したイベントを処理することは、私にとっては醜いです。そこで、キャンバスのマウスイベントをミラーリングするクラスを作成し、イベントハンドラー内でそれらのメソッドを呼び出しました。
いいですが、もっと欲しいです...
質問:
キャンバスイベントハンドラーを定義しなくても、DrawingToolクラスでcanvasによって発生したイベントを直接処理することはできますか?Window1コードをクリーンに保ち、ウィンドウ関連に焦点を合わせ、イベント処理を完全にクラスに移動したいと思います。
FrameworkElementからDrawingToolを派生させ、OnRenderをオーバーライドしてキャンバス上に透過的に描画することを考えたので、ユーザーのクリックはキャンバス上で行われたように見えましたが、実際にはDrawingToolで発生し、内部で処理されます。このアプローチは描画機能で機能します(描画が完了すると、描画されたオブジェクトはキャンバスの子に追加され、DrawingToolの子から削除されます)が、選択モードなどに関しては、たとえば要素のヒットテストに問題があります。
だから、私の問題を解決する方法の提案や、これがまったく愚かな考えである理由の説明に感謝します:)
java - マウスドラッグイベントを使用してJavaアプレットに長方形を描画し、それを維持する方法
長方形を描画できるプログラムがあります。解決できない問題が 2 つあります。長方形を描いた後、それは残りません。ペイント中のキャンバスをクリアする唯一のコードである再ペイントは、マウスのドラッグ時にのみ呼び出されます。マウスを離したり、マウスを動かしたりすると、キャンバスがクリアされるのはなぜですか。2番目の問題はそれほど問題ではありませんが、長方形の高さまたは幅が負の場合、長方形は黒で塗りつぶされます。
.net - 左ボタンと右ボタンの両方が押されているかどうかを検出するにはどうすればよいですか?
コントロール上で、左、右、および両方の3つのマウスアクションが必要です。
私は左と右を持っていて、現在3番目に真ん中のボタンを使用していますが、ユーザーが真ん中のボタンのないマウスを持っている状況で、左と右のボタンを一緒に押す方法を知りたいです。これは、カスタムコントロールのOnMouseDownメソッドで処理されます。
更新 提案された回答を確認した後、私が行おうとしていたのは、MouseDownイベント(実際にはコントロールのOnMouseDownメソッド)でマウスクリックに対してアクションを実行することであったことを明確にする必要があります。マウスの左ボタンと右ボタンの両方がクリックされると(ボタンごとに1つ)、. NETは常に2つのMouseDownイベントを発生させるように見えるため、これを行う唯一の方法は、低レベルのウィンドウメッセージを実行することだと思います。管理またはMouseDown後のアクションのある種の遅延実行を実装します。結局、マウスの中ボタンを使用する方がはるかに簡単です。
これで、アクションがMouseUpで行われた場合、Garyまたはnosの提案がうまく機能します。
この問題に関するさらなる洞察をいただければ幸いです。ありがとう!
actionscript-3 - Actionscript 3 でスプライトを介してマウス イベントをルーティングする
純粋な Actionscript 3 プロジェクトで、別のスプライトにオーバーラップするスプライトがあります。下のスプライトは通常、マウス クリックを処理します。下のスプライトは、上のスプライトと重なったときにマウス イベントを処理しなくなりました。
これが正常な動作であることを理解しています。
下のスプライトが重なったときにマウスイベントを処理するようにしたいです。(私の特定の例では、上位のスプライトは単なる装飾品であり、通常のマウスの対話性はありません。) これは可能ですか? より高いスプライトを介してマウスイベントをルーティングする方法はありますか?
ここで私の問題に関する短い日付の議論を見つけました:
http://kb2.adobe.com/cps/137/tn_13766.html
ありがとうございました。
wpf - WPFで左ボタンでマウスダウンを偽造する
WPF にコントロールがあり、そのコントロールでマウスダウンを偽造したいのですが、マウスの左ボタンで myControl.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1,0,0,0)) を試しています
しかし、「ここでは保護されたメソッドにアクセスできません」というメッセージが表示されます
誰かアイデアがありますか?
ありがとう
c# - RichTextBox SelectionChanged は、MouseDown の前に呼び出されますか?
私は RichTextBox を使用しており、マウスが押されている場合は SelectionChanged イベントで 1 つのことを行い、そうでない場合 (たとえば、キーボードを使用して何かを選択した場合) に別のことを行いたいと考えています。ただし、SelectionChanged イベントは明らかに MouseDown の前に呼び出されるため、SelectionChanged の処理中にマウスがダウンしているかどうかを知る方法はないようです。他の誰かがこの問題に遭遇しましたか? 誰かが彼らのために働いた解決策を持っていますか?
私はいくつかの強調表示コードを実行しており、SelectionChanged が呼び出される前にマウスをインターセプトする必要があります。