Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#鼠标右键单击按钮不会引发鼠标单击事件_C#_Winforms_Button_Mouseclick Event - Fatal编程技术网

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

C#鼠标右键单击按钮不会引发鼠标单击事件,c#,winforms,button,mouseclick-event,C#,Winforms,Button,Mouseclick Event,我在表单上有一个按钮,想要处理左键和右键的点击 我正在处理MouseClick事件,但这只会在左键单击时引发 这是我的代码中的某个地方的问题(我错过了一个设置)还是预期的功能 如果无法修复,那么处理MouseUp事件的最佳解决方法是什么 我想使用MouseClick的原因是可以自动识别双击 感谢您的反馈。没有代码很难回答,但一般来说,它应该可以工作 private void Form1_MouseClick(object sender, MouseEventArgs e) { if (e.

我在表单上有一个按钮,想要处理左键和右键的点击

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

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

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

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


感谢您的反馈。

没有代码很难回答,但一般来说,它应该可以工作

 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");
  }
}
//事件处理程序

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

编辑:有一个MouseDoubleClick事件,您可能想用来识别双击。适用于左右按钮

显然,答案是,
OnClick
不处理
按钮的右键单击事件。因此,解决方案是使用
MouseUp
/
MouseDown
,并检查鼠标在中途手动打开/关闭时是否双击/单击。

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

这基本上就是我所拥有的-除了更简单的(我不检查哪个按钮-我只是在每个
MouseClick
事件上都有一个messagebox),但它只有在我使用鼠标右键时才会出现。
OnClick
处理左键和右键单击事件,只有聚焦控件接收输入事件。也许它在某个地方发生了变化?当然,点击按钮会使其成为焦点控件?当然,该链接说,对于按钮,右键单击不会调用
点击
事件?不,很多控件无法获得焦点,例如标签或图片盒。不要保留您正在单击的控件类型。