【发布时间】:2015-04-18 18:51:57
【问题描述】:
我有两个表单,分别是表单 A 和表单 B。当我单击表单 B 上的保存按钮时,我希望表单 A 的 DataGridView 刷新。
我应该使用哪种方法?
【问题讨论】:
-
没有任何单一的方法可以调用来实现这一点,但我们的想法是触发一个事件,该事件将在表单 A 中执行必要的操作。
标签: c# .net winforms datagridview
我有两个表单,分别是表单 A 和表单 B。当我单击表单 B 上的保存按钮时,我希望表单 A 的 DataGridView 刷新。
我应该使用哪种方法?
【问题讨论】:
标签: c# .net winforms datagridview
使用事件是执行此操作的一种方式。下面是另一种更面向对象的方式。
在 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();
【讨论】:
在Form A中实现代码如下:
private delegate void DEmpty();
public void RefreshDataGrid()
{
this.Invoke(new DEmpty(datagrid.Refresh));
}
然后在 B 上单击按钮时调用它
【讨论】:
A _aref; _aref.RefreshDataGrid(); 改变 B 的构造函数,使其参数之一是 A 类型的 var,然后在 ctor 内部分配本地变量的值
创建一个绑定gridview的方法,在表单A的表单加载时调用该方法,如果表单已经打开,则必须使用它的实例(表单A),并调用与表单A相同的绑定方法用于gridview绑定。
【讨论】: