【发布时间】:2012-05-18 19:31:34
【问题描述】:
我在 Liste_Form 中有一个 GridView,在 Close_Form 中有一个按钮。
当我单击 Close_Form 上的按钮时,如何刷新 Liste_Form 中的 Gridview?
或者重新加载 Liste_Form。
【问题讨论】:
标签: c# winforms refresh reload findcontrol
我在 Liste_Form 中有一个 GridView,在 Close_Form 中有一个按钮。
当我单击 Close_Form 上的按钮时,如何刷新 Liste_Form 中的 Gridview?
或者重新加载 Liste_Form。
【问题讨论】:
标签: c# winforms refresh reload findcontrol
您有几种方法可以做到这一点。我可能建议的一种方法是将委托传递给构造函数中的第二种形式:
Form2 myForm2 = new Form2(RefreshGrid); // assign to a Form2 local variable
...在 Form1(网格所有者)中,您定义了 RefreshGrid 方法:
void RefreshGrid(){
// perform grid refresh
}
...这样在myForm2 中,您可以在单击按钮时执行操作:
void OnButtonClicked(object sender, EventArgs e){
refreshAction();
}
【讨论】:
在 Close_Form 上定义事件(当然考虑更好的事件名称):
public event EventHandler SomethingHappened;
在按钮单击事件处理程序中引发此事件:
private void Button_Click(object sender, EventArgs e)
{
if (SomethingHappened != null)
SomethingHappened(this, EventArgs.Empty);
}
在 Liste_Form 上订阅此活动:
Close_Form closeForm = new Close_Form();
closeForm.SomethingHappened += Close_Form_SomethingHappened;
在此事件处理程序中刷新您的列表:
private void Close_Form_SomethingHappened(object sender, EventArgs e)
{
// refresh GridView
}
【讨论】: