どのようにすべてのクリックがイベントを通過するのですか?あなたがクリックしすぎると、ダブルクリックしていると思ってクリックをイベントハンドラに送信しないと気付きました。すべてのクリックを得る方法はありますか?WinFormsはダブルクリックを無効にし、すべてのマウスクリックを受け入れますか?
答えて
なぜこの質問に賞金が得られたのか分かりませんが、受け入れられる答えはすでに解決策に近いはずです。 MouseDownの代わりにMouseUpを使用する必要があることを除いて、ユーザーは通常、ボタンを離したときにクリックアクションが有効になることを期待しています。バックアウト "oopsを提供する、それをクリックすることを意味しなかった、それは無視されるようにマウスを移動する"オプション。
ただし、PictureBoxのような組み込みのWinformsコントロールの場合、これはControl.SetStyle()メソッドで構成できます。プロジェクトに新しいクラスを追加し、以下に示すコードを貼り付けます。コンパイル。ツールボックスの上から新しいコントロールをドロップ:
using System;
using System.Windows.Forms;
class MyPictureBox : PictureBox {
public MyPictureBox() {
this.SetStyle(ControlStyles.StandardDoubleClick, false);
}
}
が、これは既存のネイティブWindowsコントロールをラップする.NETクラスのために動作しないことが用心ください。 TextBox、ListBox、TreeViewなどと同様です。そのための基本的な設定は、WNDCLASSEX.style member、CS_DBLCLKSスタイルフラグです。そのスタイルフラグを設定するコードはWindowsに焼き付けられ、変更することはできません。ダブルクリックをワンクリックに戻すには、別の種類の手術が必要です。あなたは私がテキストボックスのための一例をあげる、WndProcメソッド()メソッドをオーバーライドして行うことができます。
using System;
using System.Windows.Forms;
class MyTextBox : TextBox {
protected override void WndProc(ref Message m) {
// Change WM_LBUTTONDBLCLK to WM_LBUTTONCLICK
if (m.Msg == 0x203) m.Msg = 0x201;
base.WndProc(ref m);
}
}
あなたが他のコントロールのためにそれをしたい場合だけ、クラス名を変更します。あなたが決して多くのコードを必要としないようにWinformsを習得するには、ちょうどPetzold :)
あなたはすべてのクリックを数えたいと思います。 クリック数をカウントしたい場合は、カウンタ変数を1つ設定し、クリックイベントでそれを増やします。 このヘルプがあります....
あなたはそれを本当に速く10回クリックしてください。あなたは10未満の数字を取得します。私はそれらのクリックのすべてを10欲しい。 – Will
Clickイベントの代わりにcontrols MouseDownイベントを使用します。 MouseDownは、そのコントロール上でマウスが「押し込まれる」たびに呼び出されます。クリックがダブルクリックであるとシステムが判断した場合、クリックされないことがあります。代わりにDoubleClickイベントが発生します。
- 1. QToolButtonは無効状態でホバーを受け入れますか?
- 2. TestNGはクラスからすべての無効なテストを受け取ります
- 3. ASP.NETアイデンティティトークンメソッドはすべてのHTTPメソッドを受け入れます
- 4. PrimeFacesカレンダーで無効な日付を入力として受け入れる
- 5. winformsデザイナで、ダブルクリック - >コードビハインドのイベントハンドラ作成を無効にすることはできますか?
- 6. 自動クッキーのポップアップを受け入れるか無効にする
- 7. WinFormsアプリケーションでキーストロークを受け入れる方法はありますか?
- 8. .live無効ダブルクリック
- 9. C# - すべてのSOAPメッセージプレフィックスを受け入れます。
- 10. ハイブが無効なクエリを受け入れ、今日のRuntimeException
- 11. リーフレット0.7:ポリラインまたはポリゴンのマウスクリックを無効にする
- 12. ダブルクリックを無効にしてオートビューアビューアをオンラインにする
- 13. WinRTを使用して無効なSSL証明書を受け入れる
- 14. ログインテンプレートすべての入力を受け入れる
- 15. filter_var()が無効なURLを受け入れる
- 16. WebAPI - 無効なJSONを受け入れる
- 17. 無効なjsonを受け入れる.NET MVCコントローラ
- 18. Azure App Serviceはすべてのドメイン名を受け入れる
- 19. set_error_handler()は無効なコールバックを受け取りますか?
- 20. winformsアプリケーションは、フォーカスを持たずにユーザー入力を受け入れることができますか?
- 21. WPFアプリケーションへのすべてのマウスクリックを傍受する
- 22. std :: tupleはautoを型として受け入れますか
- 23. Bash Regexは[Number]を受け入れますが、番号のみを受け入れるようにします
- 24. winformsのリフレッシュを無効にする
- 25. c#WinForms - プログラムApplication.EnableVisualStyles()をプログラムで無効にしますか?
- 26. 私のenumはintとして受け入れられるべきですか?
- 27. Cygnusは既にNGSI2を受け入れていますか?
- 28. 電卓はすべての演算子を受け入れるべきです
- 29. 右マウスクリックを無効にしてツールチップを表示
- 30. FlatListのネイティブメイクビューはスクロールイベントを無視しますが、onPressイベントを受け入れる
代わりにmousedownイベントを使用してください。 –
@RussellTroywest私は[MouseClick](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseclick%28VS.80%29.aspx)イベントが良いと思います。注文を上げるために。 –
@Michael:MSDNによると、「ユーザーのオペレーティングシステムのマウス設定によって決定される、2回のシングルクリックは、2回目のMouseClickイベントではなく、MouseDoubleClickイベントを生成します。 - ハイが何を見ているのか。 –