C# 在Windows窗体中刷新DataGridView

C# 在Windows窗体中刷新DataGridView,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有两个表单,分别是表单A和表单B。当我单击表单B上的保存按钮时,我希望表单A的DataGridView刷新 我应该使用哪种方法?创建一个绑定gridview的方法,在表单a的表单加载时调用此方法,如果表单已经打开,则必须使用其实例(表单a),并调用表单a的相同绑定方法进行gridview绑定。在表单a中实现如下代码: private delegate void DEmpty(); public void RefreshDataGrid() { this.Invoke(new DEmpty

我有两个表单,分别是表单A和表单B。当我单击表单B上的保存按钮时,我希望表单A的DataGridView刷新


我应该使用哪种方法?

创建一个绑定gridview的方法,在表单a的表单加载时调用此方法,如果表单已经打开,则必须使用其实例(表单a),并调用表单a的相同绑定方法进行gridview绑定。

在表单a中实现如下代码:

private delegate void DEmpty();
public void RefreshDataGrid()
{
   this.Invoke(new DEmpty(datagrid.Refresh));
}

然后在单击B上的按钮时调用此函数,使用事件是执行此操作的一种方法。下面是另一种更面向对象的方法

在FormA中添加公共刷新方法

public void RefreshDataGrid()     
{       
   //Do refresh    
}
在构造FormB时,将FormA的实例传递给FormB。您必须创建FormB构造函数以获取FormA实例

    private FormA myFormA;        
    public FormB(FormA formA)        
    {        
        myFormA = formA;        
    }
现在可以从FormB调用FormA.ResfreshGrid()方法

myFormA.RefreshGrid();

没有任何一个方法可以调用来实现这一点,但其思想是触发一个事件,该事件将以A的形式执行必要的操作。我在invoke中拼写了DEmpty,现在它的fixedREfreshDataGrid没有出现在B中。为什么?因为您必须获得对A的引用,然后像这样调用函数RefreshDataGrid
A\u aref_aref.RefreshDataGrid()更改B的构造函数,使其参数之一为A类型的var,然后在该构造函数内将该值分配给本地var