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); }