How to get a right click mouse event? Changing EventArgs to MouseEventArgs causes an error in Form1Designer?(如何获得鼠标右键事件?将 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 的定义...
System.EventArgsdoes 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 出现错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何获得鼠标右键事件?将 EventArgs 更改为 MouseEventArgs 会导致 Form1Designer 出现错误?
基础教程推荐
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
