C#从另一个表单调用方法
嗨,我有2 Form Form1和Form2
Form1有一个表,有我的记录,并有一个Void用于刷新Form1中的表。
Form2是我的插入表单我是插入数据到sqlserver.I想要的是当我在Form2中保存记录后运行Form1刷新void。(当Form1,Form2打开时)
谢谢。
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();
在Form 1中,当您打开Form 2时,附加到Form 2 OnClose/Closed
事件或自定义Save
事件,该事件在引发时刷新表单1中的表。
调整Form2的构造,以便它需要一个额外的参数,如下所示:
... private Form1 mainWindow; public Form2(Form1 mainWindow) { this.mainWindow = mainWindow; } ... public void HaveSavedSql() { this.mainWindow.RefreshAll(); }
您应该考虑查看接口,以便分开关注。 接口对很多东西很有用!
尝试这个从另一种forms调用方法:
if (System.Windows.Forms.Application.OpenForms["ParentFormName"] != null) { (System.Windows.Forms.Application.OpenForms["ParentFormName"] as ParentFormName).MethodName(args); }