从另一个表单刷新 dataGridView
Posted
技术标签:
【中文标题】从另一个表单刷新 dataGridView【英文标题】:refresh a dataGridView from another form 【发布时间】:2015-01-16 00:06:09 【问题描述】:我有 Form1 和 Form2。
Form1 有一个 dataGridView 和一个用于打开 Form2 的按钮。 我在 Form1 中编写了一个方法,如下所示,可以完美刷新 dataGridView:
public void RefreshGrid()
dataGridView1.DataSource = empControl.SelectAll(); //Works great
在 Form2 中,我插入表格并使用以下代码调用上述方法。 当我跟踪代码时,我看到它一直实现但 dataGridView 没有刷新!
private void btnInsert_Click(object sender, EventArgs e)
//Insert Code (Inserts perfectly)
Form1 frm = new Form1();
frm.RefreshGrid();
this.Close();
我也尝试了 Form2 的 FormClosing 事件,但没有成功。
请帮帮我!
【问题讨论】:
这是一个描述如何传递实例的链接***.com/questions/4176682/… @Sybren 非常感谢你给我留下这个链接,它为我完成了这份工作。 【参考方案1】:我在@MikeH 和@Sybren 的帮助下解决了我的问题:
表格1:
Form2 frm = new Form2(this);
frm.Show();
表格2:
private readonly Form1 frm1; //readonly is optional (For safety purposes)
public Form2(Form1 frm)
InitializeComponent();
frm1 = frm;
private void btnInsert_Click(object sender, EventArgs e)
frm1.RefreshGrid();
this.Close();
【讨论】:
【参考方案2】:您的问题是您正在创建Form1
的新实例。而不是new Form1
,您需要将现有 Form1
的实例传递给Form2
【讨论】:
以上是关于从另一个表单刷新 dataGridView的主要内容,如果未能解决你的问题,请参考以下文章