EventArgs.Empty与MouseEventArgs.Empty

时间:2014-07-25 17:00:51

标签: c# winforms

有两种方法。

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

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

  

无法转换为' System.EventArgs'至   System.Windows.Forms.MouseEventArgs

转换MouseMouseEventArgs.Empty参数也不起作用。我怎样才能手动调用第二种方法?

2 个答案:

答案 0 :(得分:1)

您需要向方法调用提供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

答案 1 :(得分:0)

没有MouseEventArgs.Empty因为必须设置属性。您需要实例化该类,以便它可以保存有意义的信息(例如,按下了哪个按钮)。

例如,如果处理程序关心按下了哪个按钮,您可以执行以下操作:

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