在没有用户输入的情况下触发"点击"事件

Rav*_*mer 5 c# events winforms

我有一个Windows窗体链接标签,"刷新",刷新显示.

在我的代码的另一部分,一个单独的窗体的一部分,我有一个对话框,首先改变加载到显示器中的数据.执行此其他代码后,按"刷新"可正确更新数据.

对话框菜单完成更改数据后,是否有一种简单的方法可以"点击""刷新"链接标签?

使用Visual Studio 2008.

dig*_*All 9

对于按钮非常简单,只需使用:

button.PerformClick()
Run Code Online (Sandbox Code Playgroud)

无论如何,我更喜欢做类似的事情:

private void button_Click(object sender, EventArgs e)
{
   DoRefresh();
}

public void DoRefresh()
{
   // refreshing code
}
Run Code Online (Sandbox Code Playgroud)

并打电话DoRefresh()而不是PerformClick()


编辑(根据OP的变化):

您仍然可以使用我的第二个解决方案,这是更可取的:

private void linkLabel_Click(object sender, EventArgs e)
{
   DoRefresh();
}

public void DoRefresh()
{
   // refreshing code
}
Run Code Online (Sandbox Code Playgroud)

从表单外部,您可以打电话,DoRefresh()因为它标记为公开.

但是,如果你真的需要以编程方式生成点击,只需看看Yuriy-Faktorovich的答案


Yur*_*ich 5

您可以调用PerformClick方法.但通常情况下,最好让按钮的Click事件调用您编写的Refresh方法.菜单也调用该方法.否则你的菜单取决于那里的按钮.

编辑:

LinkLabel显式实现了IButtonControl.所以你可以使用:

((IButtonControl)button).PerformClick();