我不想点击按钮,我只想运行单击事件代码。我该如何做?
button1_click(null, new EventArgs() );
sender
参数未被使用。 - Ben Voigt选项:使用PerformClick()
。
看一下这里:如何:以编程方式调用按钮的单击事件。
这里的优点是事件行为将与实际按钮单击完全相同(而不是直接调用button1_click
)。
但在我看来,这些选项都不是最好的。如果您需要调用事件处理程序代码,您需要一个新方法!只需重构旧的button1_click
成为一个新的、标准的方法,然后从任何地方调用它。
PerformClick
比直接调用按钮处理程序更好,因为框架知道是否需要执行任何特殊操作。它还解决了Ben Voigt关于sender
参数的问题。 - Powerlord从Button
所在的Form
内部或外部调用?最简单的方法就是直接调用该函数:
Button1_Click(Button1, EventArgs.Empty);
有时我会通过实际调用事件处理程序函数来做到这一点,前提是我已经实现了它。
字面上的调用方式如下:
button1_Click(this, new EventArgs());
尝试使用p/invoke和keybd_event http://msdn2.microsoft.com/en-us/library/ms646304(VS.85).aspx。