C#鼠标右键单击按钮不会引发鼠标单击事件
我在表单上有一个按钮,想要处理左键和右键的点击 我正在处理MouseClick事件,但这只会在左键单击时引发 这是我的代码中的某个地方的问题(我错过了一个设置)还是预期的功能 如果无法修复,那么处理MouseUp事件的最佳解决方法是什么 我想使用MouseClick的原因是可以自动识别双击C#鼠标右键单击按钮不会引发鼠标单击事件,c#,winforms,button,mouseclick-event,C#,Winforms,Button,Mouseclick Event,我在表单上有一个按钮,想要处理左键和右键的点击 我正在处理MouseClick事件,但这只会在左键单击时引发 这是我的代码中的某个地方的问题(我错过了一个设置)还是预期的功能 如果无法修复,那么处理MouseUp事件的最佳解决方法是什么 我想使用MouseClick的原因是可以自动识别双击 感谢您的反馈。没有代码很难回答,但一般来说,它应该可以工作 private void Form1_MouseClick(object sender, MouseEventArgs e) { if (e.
感谢您的反馈。没有代码很难回答,但一般来说,它应该可以工作
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
处理左键和右键单击事件,只有聚焦控件接收输入事件。也许它在某个地方发生了变化?当然,点击按钮会使其成为焦点控件?当然,该链接说,对于按钮,右键单击不会调用点击事件?不,很多控件无法获得焦点,例如标签或图片盒。不要保留您正在单击的控件类型。