C#鼠标右键单击按钮不会引发鼠标点击事件

时间:2011-11-18 09:25:19

标签: c# winforms button mouseclick-event

我在表单上有一个按钮,想要同时处理左右点击。

我正在处理MouseClick事件,但这只是在左键单击时引发的。

这是我代码中的某个地方(我错过了一个设置)还是预期的功能?

如果无法修复,处理MouseUp事件的最佳解决方法是什么?

我想使用MouseClick的原因是自动识别双击。

感谢您的反馈。

4 个答案:

答案 0 :(得分:10)

使用MouseUp !!

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

答案 1 :(得分:5)

没有代码很难回答,但总的来说,它应该有效。

 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事件来识别双击。适用于左右两个博物馆按钮。

答案 2 :(得分:4)

显然,答案是OnClick无法处理Button的右键单击事件。因此,解决方案是使用MouseUp / MouseDown并检查鼠标在手动中途上下移动的双击/点击次数。

答案 3 :(得分:-1)

私有无效Formbutton_MouseClick(对象发送者,MouseEventArgs e)         {

        if (e.Button == MouseButtons.Right)
        {
            MessageBox.Show("Right");
        }

        else if(e.Button==MouseButtons.Left)
        {
            MessageBox.Show("Left");
        }

    }