您好 我有2 Form Form1和Form2
Form1有一个表,有我的记录,并且有一个Void用于刷新Form1中的表。
Form2是我的插入表单我是插入数据到sqlserver.I想要的是当我在Form2中保存记录后运行Form1刷新无效。(当Form1,Form2打开时)
感谢。
答案 0 :(得分:5)
Form2必须引用Form1的实例。单击插入按钮时,可以将此引用传递给Form2:
Form2 insertForm = new Form2();
//Form2.ShowDialog(Me); - Correction - 'Me' is for VB. in C# it's:
Form2.ShowDialog(this);
接下来,在Form2上,您可以像这样访问Form1:
(Form1)this.Parent.RefreshTable();
答案 1 :(得分:0)
在Form1中,当您打开Form2时,请附加到Form2 OnClose/Closed
事件或自定义Save
事件,该事件在引发时会刷新表单1中的表格。
答案 2 :(得分:0)
调整Form2的构造,使其需要一个额外的参数,如下所示:
...
private Form1 mainWindow;
public Form2(Form1 mainWindow)
{
this.mainWindow = mainWindow;
}
...
public void HaveSavedSql()
{
this.mainWindow.RefreshAll();
}
您应该考虑查看Interfaces,以便分开关注。接口对很多东西都很有用!
答案 3 :(得分:0)
尝试从另一种形式调用方法:
if (System.Windows.Forms.Application.OpenForms["ParentFormName"] != null)
{
(System.Windows.Forms.Application.OpenForms["ParentFormName"] as ParentFormName).MethodName(args);
}