2012-02-26 9 views
12

ビジュアルC#で掃海型ゲームを作ろうとしていますが、右クリックしてボタンを左クリックするとさまざまなことが起こります。ビジュアルC#フォーム右クリックボタン

私はこのコードを試してみましたが、それは唯一の左クリックを登録します。

private void button1_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"); 
     } 

    } 
+0

あなたはすでに正しい答えを持っているので、書き換える必要はありません。私は数週間前に私自身の掃除隊を書いて、[SOの質問](http://stackoverflow.com/questions/8485779/capture-simultaneous-right-and-left-click-event-triggers-on-label)あなたを助けるかもしれない。それは、 "それを囲む覆われたすべてのボックスを表示するために数字の上に同時に両方のマウスボタンをクリックする"関数を作成する方法です。あなたはすでにこれを行う方法を知っているなら、私を無視してください: –

+0

クール、それは便利かもしれない – SpencerJL

答えて

8

あなたは右クリックをキャプチャする代わりにClickイベントのMouseUpまたはMouseDownイベントを使用する必要があります。

+0

また、 'eventArgs.button == MouseButtons.Right' –

1

button1_MouseClickイベントの代わりにbutton1_MouseDownイベントで試してみてください。問題が解決します。

private void button1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      //do something 
     } 
     if (e.Button == MouseButtons.Right) 
     { 
      //do something 
     } 
    } 
0

ボタンがMouseButtons.LeftないMouseButton.Rightためともない中間のためのみに反応しています。

void Select(object sender, MouseEventArgs e) 
{ 
    /* var btn = sender as CardButton;*/ 

    if (e.Button == MouseButtons.Left) 
    { 
     if (this.Selected == false) 
     { 
      this.Selected = true; 
     } 
     else 
     { 
      this.Selected = false; 
     } 
    } 
    if (e.Button == MouseButtons.Right) 
    { 
     if (this.Selected == false) 
     { 
      this.Selected = true; 
     } 
     else 
     { 
      this.Selected = false; 
     } 
    } 

    Draw(); 
} 
関連する問題