【问题标题】:Refresh DataGridView in Windows form在 Windows 窗体中刷新 DataGridView
【发布时间】:2015-04-18 18:51:57
【问题描述】:

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

我应该使用哪种方法?

【问题讨论】:

  • 没有任何单一的方法可以调用来实现这一点,但我们的想法是触发一个事件,该事件将在表单 A 中执行必要的操作。

标签: c# .net winforms datagridview


【解决方案1】:

使用事件是执行此操作的一种方式。下面是另一种更面向对象的方式。

在 FormA 中添加公共 Refresh 方法。

public void RefreshDataGrid()     
{       
   //Do refresh    
}

在构造 FormB 时将 FormA 的实例传递给 FormB。您必须创建 FormB 构造函数来获取 FormA 实例。

    private FormA myFormA;        
    public FormB(FormA formA)        
    {        
        myFormA = formA;        
    }

现在您可以从 FormB 调用 FormA.ResfreshGrid() 方法了。

myFormA.RefreshGrid();

【讨论】:

    【解决方案2】:

    在Form A中实现代码如下:

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

    然后在 B 上单击按钮时调用它

    【讨论】:

    • 我在调用时拼错了 DEmpty,现在它已修复
    • REfreshDataGrid 没有出现在 B 中。为什么?
    • 因为你必须得到 A 的引用,然后调用函数 RefreshDataGrid 像这样A _aref; _aref.RefreshDataGrid(); 改变 B 的构造函数,使其参数之一是 A 类型的 var,然后在 ctor 内部分配本地变量的值
    【解决方案3】:

    创建一个绑定gridview的方法,在表单A的表单加载时调用该方法,如果表单已经打开,则必须使用它的实例(表单A),并调用与表单A相同的绑定方法用于gridview绑定。

    【讨论】:

      猜你喜欢
      • 2016-05-23
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      相关资源
      最近更新 更多