从其他类中查找表单实例
我有一个包含listBox内部数据列表的主窗体。 在按钮上单击我打开新表单以创建新数据对象(主表单在后台处于非活动状态),当提交新数据时,主表单中的listobox应填充该新对象。
我在考虑以下事项:
- 当提交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