从不同的形式调用方法

时间:2018-02-21 04:49:26

标签: c#

我有2个表格。第一个(Form1)有一个datagrid,第二个(Form2)有一个按钮来调用Form1中的函数来刷新数据网格。

我想要实现的是;单击form2中的按钮,form1 datagrid应刷新(此刷新将作为调用函数temp_proj的结果) 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以创建一个存储form1实例的类。

您可以调用您的form1更新方法,如

来自另一个类的Globals.Form1.UpdateUI()。您可以在类中实例化,也可以将其存储为全局类中的变量。

答案 1 :(得分:0)

您可以在此处使用委托和事件概念。请考虑以下代码段:

Form1中的代码(具有网格的代码)

delegate void RefreshGrid();

// Method or event that opens form 2
public void OpenNextForm()
{
    RefreshGrid EventRefresh = new RefreshGrid(RefreshGridEvent);
    Form2 frm2Instance = new Form2();
    frm2Instance.parentEvent = EventRefresh;
    frm2Instance.Show();
}

Form2中的代码

public Delegate parentEvent;
public void Form2ButtonClick()
{
     parentEvent.DynamicInvoke();
}

请注意以下事项:

  • Form2ButtonClick:将是Form2
  • 中的按钮点击事件
  • OpenNextForm:将是Form1中打开Form2的事件