本文介绍了如何获得鼠标右键事件?将 EventArgs 更改为 MouseEventArgs 会导致 Form1Designer 出现错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一种方法可以检测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 的定义...

所以我通过将 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 出现错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 01:47