Visual C#表单右键单击按钮

我正在尝试在visual 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"); } } 

您必须使用MouseUpMouseDown事件而不是Click事件来捕获右键单击。

只需尝试使用button1_MouseDown事件而不是button1_MouseClick Event.It将解决您的问题。

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

Button只对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(); }