从其他表单上的按钮单击事件处理程序刷新控件或重新加载表单

时间:2012-05-10 08:43:23

标签: c# winforms refresh reload findcontrol

我在Liste_Form中有一个GridView,在Close_Form中有一个按钮。

当我点击Close_Form上的按钮时,如何刷新Liste_Form中的Gridview

或者重新加载Liste_Form。

2 个答案:

答案 0 :(得分:0)

您可以通过以下几种方式完成此操作。我建议的一种方法是将委托传递给构造函数中的第二个表单:

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();
}

答案 1 :(得分:0)

在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
}