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

时间:2014-03-11 13:39:26

标签: c# forms datagridview

我遇到了无法刷新具有DataGridView的表单的问题。 我打开一个名为MaintenanceForm的表单。 在这里,我将选择一辆车,给出公里数量,以及添加产品的选项。 如果我点击添加产品按钮,这个表单将保持打开状态,而另一个表单将打开,也称为AddProducts。在此表单中,我将从我将添加到最终列表框的产品列表中进行选择。如果单击“保存”,这些项将转到我的BindingList并填充我的网格。 我已经测试了这个,首先关闭我的第一个表单并用我的第二个表单重新打开它。网格已填充。 如何在不关闭第一张表格的情况下填充网格? 以下是我使用

的方法

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

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

填充网格的方法:

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

}

当AddProductsForm打开时,MaintenanceForm仍然打开吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

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

而不是创建一个新实例(感谢Junaith纠正我)我正在制作一个LogicalParent方法。

public AdminForm LogicalParent {get;组; }

有了这个,我可以访问我的父表单的方法和功能,并且没有刷新问题。