C#使用另一个表单刷新DataGridView

C#使用另一个表单刷新DataGridView,c#,forms,datagridview,C#,Forms,Datagridview,无法刷新包含DataGridView的表单时出现问题。 我打开一个叫做MaintenanceForm的表单。 在这里,我将选择一辆车,给出公里数,以及添加产品的选项。 如果我单击AddProducts按钮,此表单将保持打开状态,而另一个表单也将打开,称为AddProducts。在这个表单中,我将从我将添加到最终列表框中的产品列表中进行选择。如果单击“保存”,这些项目将转到我的绑定列表并填充我的网格。 我已经通过先关闭第一个表单,然后用第二个表单重新打开来测试这一点。网格已填充。 如何在不关闭第一

无法刷新包含
DataGridView
的表单时出现问题。 我打开一个叫做MaintenanceForm的表单。 在这里,我将选择一辆车,给出公里数,以及添加产品的选项。 如果我单击AddProducts按钮,此表单将保持打开状态,而另一个表单也将打开,称为AddProducts。在这个表单中,我将从我将添加到最终列表框中的产品列表中进行选择。如果单击“保存”,这些项目将转到我的绑定列表并填充我的网格。 我已经通过先关闭第一个表单,然后用第二个表单重新打开来测试这一点。网格已填充。 如何在不关闭第一个表单的情况下填充网格? 以下是我正在使用的方法

我的第二张表单上的“保存”按钮:

private void btnOpslaan_Click(object sender, EventArgs e)
{
    lstTotal = new BindingList<Product>();
    foreach (object product in listBtotal.Items)
    {
        lstTotal.Add((Product)product);

    }
    MaintenanceForm maintenanceForm = new MaintenanceForm();
    maintenanceForm.FillDataGridView(lstTotal);
    this.Close();
}
private void btnOpslaan\u单击(对象发送方,事件参数e)
{
lstTotal=新绑定列表();
foreach(listBtotal.Items中的对象产品)
{
lstotal.添加((产品)产品);
}
MaintenanceForm MaintenanceForm=新的MaintenanceForm();
maintenanceForm.FillDataGridView(LSTotal);
这个。关闭();
}
方法来填充我的网格:

public void FillDataGridView(BindingList<Product> products)
{
    dGvProducts.DataSource = null;
    dGvProducts.AutoGenerateColumns = false;
    dGvProducts.AllowUserToAddRows = false;
    dGvProducts.DataSource = products;
    dGvProducts.Refresh();

}
public void FillDataGridView(BindingList产品)
{
dGvProducts.DataSource=null;
dGvProducts.AutoGenerateColumns=false;
dGvProducts.allowUserToAddress=false;
dGvProducts.DataSource=产品;
dGvProducts.Refresh();
}
在AddProductsForm打开时,MaintenanceForm仍然打开


提前感谢

感谢用户JDB,我已经解决了我的问题

我现在正在创建一个LogicalParent方法,而不是创建一个新实例(感谢Junaith纠正我的错误)

公共AdminForm LogicalParent{get;set;}


有了它,我可以访问父窗体的所有方法和函数,刷新也没有问题。

为什么要在保存按钮内创建一个新的
MaintenanceForm
实例?保存按钮不是吗?它是
AddProducts
表单的一部分,在您的情况下,它是
MaintenanceForm
的子项。