问题描述
我有一种方法可以检测Visual Studio通过双击表单进行的左键单击事件.
I have a method to detect the left click event that visual studio made by double clicking on the form.
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Left click");
}
我想通过右键单击同一个对象来获得右键单击事件.
I want to have a right-click event by right-clicking on the same object.
我在网上看到你可以使用这个开关:
I read online that you can use this switch:
private void pictureBox1_Click(object sender, EventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right){MessageBox.Show("Right click");}
if (e.Button == System.Windows.Forms.MouseButtons.Left){MessageBox.Show("Left click");}
}
问题在于,当我执行 e.Button
时,它会产生错误错误:
The trouble is that when I do e.Button
it has has yields an error error:
System.EventArgs
不包含 Button
的定义...
System.EventArgs
does not contain a definition forButton
...
所以我通过将 EventArgs.e
更改为 MouseEventArgs.e
So I fix this by changing the EventArgs.e
to MouseEventArgs.e
但是在Form1Designer中出现了一个新的错误,事件行是:
But then there is a new error in Form1Designer where the event line is:
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
错误提示:
pictureBox1_Click
没有重载匹配委托 System.EventHandler
我该如何解决这个问题?感谢阅读
How do I fix this? Thanks for reading
推荐答案
您应该在 click
事件处理程序中引入强制转换
You should introduce a cast inside the click
event handler
MouseEventArgs me = (MouseEventArgs) e;
这篇关于如何获得鼠标右键事件?将 EventArgs 更改为 MouseEventArgs 会导致 Form1Designer 出现错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!