从其他类中查找表单实例

我有一个包含listBox内部数据列表的主窗体。 在按钮上单击我打开新表单以创建新数据对象(主表单在后台处于非活动状态),当提交新数据时,主表单中的listobox应填充该新对象。

我在考虑以下事项:

  1. 当提交Form2时,我正在考虑找到MainForm实例并终止该实例,然后它应该很容易,再次从db中加载数据列表并显示在列表框中。

问题是:

如果创建了Form1,并且在某些事件上,Form2用showDialog实例化,那么Form1在提交数据之前是无效的,如何在Form2关闭之前找到Form1实例?

那么,如何从Form2类中找到Form1类的实例?

谢谢

您可以使用Application.OpenForms属性获取对任何应用程序当前打开的表单的引用。 此FormCollection Forms可以通过索引访问,如下所示:

 Form form1 = Application.OpenForms[0]; 

或者通过表单的Name属性如下:

 Form form1 = Application.OpenForms["Form1"]; 

希望这可以帮助。

如果你打电话

 Form1.ShowDialog(this) 

那么你将能够获得对调用表单的引用

 this.Owner.Name 

在第二种forms(在您的情况下Form2)

请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.form.showdialog.aspx