6

フォームにボタンがあり、左クリックと右クリックの両方を処理したいと考えています。

MouseClickイベントを処理していますが、これは左クリックでのみ発生します。

これは私のコードのどこか(私が見逃した設定)または意図された機能の問題ですか?

これを修正できない場合、MouseUpイベントを処理するための最善の回避策は何ですか?

MouseClickを使用したいのは、ダブルクリックが自動的に認識されるようにするためです。

フィードバックをありがとうございます。

4

3 に答える 3

14

マウスアップを使用してください!!

    private void button6_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            MessageBox.Show("LEFT");
        }
        if (e.Button == System.Windows.Forms.MouseButtons.Right)
        {
            MessageBox.Show("RIGHT");
        }
    }
于 2013-06-24T16:10:16.947 に答える
6

どうやらこれに対する答えは、のOnClick右クリックイベントを処理しないということButtonです。したがって、解決策は/を使用MouseUpMouseDown、マウスが手動で途中でオン/オフに移動するダブルクリック/クリックをチェックすることでした。

于 2011-11-23T16:20:14.650 に答える
6

コードなしで答えるのは難しいですが、一般的にはうまくいくはずです。

 private void Form1_MouseClick(object sender, MouseEventArgs e)
{
  if (e.Button == System.Windows.Forms.MouseButtons.Left)
  {
    MessageBox.Show("LEFT");
  }
  if (e.Button == System.Windows.Forms.MouseButtons.Right)
  {
    MessageBox.Show("RIGHT");
  }
}

// EventHandler

 this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseClick);

編集:ダブルクリックを認識するために使用したい MouseDoubleClick イベントがあります。左右のミューズボタンの両方で機能します。

于 2011-11-18T09:28:16.703 に答える