EventArgs.Empty vs MouseEventArgs.Empty

本文关键字:Empty MouseEventArgs vs EventArgs | 更新日期: 2023-09-27 18:14:57

有两个方法

control_SelectionChanged(this, EventArgs.Empty);
control_MouseClick(this, MouseEventArgs.Empty);

第一个工作正常,第二个抛出错误:

无法从"System"转换。EventArgs"System.Windows.Forms.MouseEventArgs

转换MouseMouseEventArgs.Empty参数也不起作用。我如何手动调用第二个方法?

EventArgs.Empty vs MouseEventArgs.Empty

您需要为方法调用提供MouseEventArgs的实例。静态属性MouseEventArgs。Empty返回一个EventArgs类型的实例(详见http://msdn.microsoft.com/en-us/library/system.eventargs.empty(v=vs.110).aspx)。

您需要使用构造函数实例化新类:

control_MouseClick(this, new MouseEventArgs(...));

构造函数的参数定义在这里:http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.mouseeventargs(v=vs.110).aspx

没有MouseEventArgs.Empty,因为有必须设置的属性。你需要实例化这个类,这样它才能保存有意义的信息(例如哪个按钮被按下了)。

例如,如果处理程序关心按下了哪个按钮,您可以这样做:

control_MouseClick(this, new MouseEventArgs { Button = MouseButtons.Left });