【发布时间】:2010-07-06 15:41:33
【问题描述】:
我有一个用于刷新显示的 Windows 窗体链接标签“刷新”。
在我的代码的另一部分,一个单独的窗口窗体的一部分,我有一个对话框,它首先更改加载到显示中的数据。执行此其他代码后,按“刷新”正确更新数据。
对话框菜单是否有一种简单的方法可以在完成更改数据后“单击”“刷新”链接标签?
使用 Visual Studio 2008。
【问题讨论】:
我有一个用于刷新显示的 Windows 窗体链接标签“刷新”。
在我的代码的另一部分,一个单独的窗口窗体的一部分,我有一个对话框,它首先更改加载到显示中的数据。执行此其他代码后,按“刷新”正确更新数据。
对话框菜单是否有一种简单的方法可以在完成更改数据后“单击”“刷新”链接标签?
使用 Visual Studio 2008。
【问题讨论】:
对于按钮非常简单,只需使用:
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
【讨论】:
您可以拨打PerformClick method。但通常最好让按钮的 Click 事件调用您编写的 Refresh 方法。菜单也会调用该方法。否则,您的菜单取决于那里的按钮。
编辑:
LinkLabel 显式地实现了 IButtonControl。所以你可以使用:
((IButtonControl)button).PerformClick();
【讨论】:
你可以使用一个方法来刷新显示,bouton_click和对话框调用这个方法
public void refrechDate()
{
}
private void button_click(...)
{
refrechData();
}
【讨论】:
private void MyMethod()
{
// ...
// calling refresh
this.button1_Click(this.button1, EventArgs.Empty);
// ...
}
private void button1_Click(object sender, EventArgs e)
{
// refresh code
}
【讨论】: