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

时间:2010-07-06 15:41:33

标签: c# winforms events

我有一个Windows窗体链接标签,“刷新”,刷新显示。

在我的代码的另一部分,一个单独的窗口表单的一部分,我有一个对话框,首先更改加载到显示器中的数据。执行完其他代码后,按“刷新”可以正确更新数据。

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

使用Visual Studio 2008。

4 个答案:

答案 0 :(得分:9)

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

button.PerformClick()

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

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

public void DoRefresh()
{
   // refreshing code
}

并致电DoRefresh()而非PerformClick()


编辑(根据OP的变化):

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

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

public void DoRefresh()
{
   // refreshing code
}

从表单外部,您可以将DoRefresh()称为公开。

但是,如果您确实需要以编程方式生成点击,请查看Yuriy-Faktorovich's Answer

答案 1 :(得分:5)

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

编辑:

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

((IButtonControl)button).PerformClick();

答案 2 :(得分:0)

您可以使用方法刷新显示,button_click和对话框调用此方法

public void refrechDate()
{
}


private void button_click(...)
{
   refrechData();
}

答案 3 :(得分:0)

private void MyMethod()
{
   // ...

   // calling refresh
   this.button1_Click(this.button1, EventArgs.Empty);

   // ...
}

private void button1_Click(object sender, EventArgs e)
{
   // refresh code
}