【发布时间】:2013-08-26 22:19:42
【问题描述】:
我遇到用户单击 Form1 上的按钮以打开 Form2 的情况。 Form1 的加载事件根据从数据库返回的数据填充树视图。当他们将数据输入 Form2 时,数据库会更新,但树视图不会。如果我关闭并重新打开 winform,它会提取新数据。
我已经挖了几个小时了,我发现了如何从Form2调用Form1中的getdata方法,但是它不起作用。我可以在调试模式下跟踪它,并验证我的 dataReader 包含新值,但树视图没有更新。我是这样做的。
//In form 2
Form1 frm = new Form1();
frm.getData();
什么都没有发生。如果我说 frm.Show() 那么它会打开一个带有更新数据的新 Form1 窗口,但我希望树视图在已经打开的 Form1 窗口中更新。
我相信这是问题的根源。我对 frm 的任何调用都发生在一个新窗口中。如何从 Form2 访问现有 Form1 窗口的 getData() 方法?
【问题讨论】:
-
你是如何在 Form1 中创建并显示 Form2 的?
-
在打开 Form2 时,尝试在 Form2 的构造函数中通过
ref关键字传递树视图的引用,如`public Form2(ref TreeView tv)`,在对 Form2 进行每次操作后,也更新 treeView 并刷新 Form1() Form2() 关闭,希望你理解。
标签: .net winforms c#-4.0 treeview