2

我有一个表单,显示来自 access 数据库中的表的名称,然后单击按钮,我移至 form2 进行一些更改,例如重命名一个字段,单击确定,更改在数据库中进行,然后我返回form1,但更改不会反映回来。

要查看更改,我必须重新启动程序。

我尝试了 form.refresh 和 form.invalidate 但没有任何效果。

我在某处读到必须完成线程,但我是 c# 新手,不知道线程。

有人可以建议除线程之外的任何方法来执行此操作。如果线程是唯一的方法,请提出一些好的资源和示例。

4

2 回答 2

0

创建您希望更新的控件的访问器或传递 to 的Form1引用Form2。如果您访问访问器根目录,您可以尝试Form1拥有

public dataGridView
{
    get { return this.dataGridView1; }
    set { this.dataGridView1 = value; }
}

然后你可以更新Form2使用

Form1 accessForm1 = (Form1)this.Parent;
accessForm1.dataGridView.Update();

注意:也要更新DataGridView使用Form1

accessForm1.dataGridView.Source = someDataBindingSource;

我希望这有帮助。

于 2012-04-06T08:12:59.030 回答
0

上的数据form1不会因为您更新了基础数据而改变。

您需要从数据库中重新获取数据并form1在从form2.

您可以通过向form2.Closing事件注册并在事件处理程序中执行重新获取和重新填充来做到这一点。

于 2012-04-06T08:08:56.950 回答