9

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

我在想以下:

  1. 提交 Form2 时,我想找到 MainForm 实例并杀死该实例,之后应该很容易,再次从数据库加载数据列表并显示在列表框中。

问题是:

如果创建了 Form1 并且在某些事件中使用 showDialog 实例化了 Form2,那么 Form1 在提交数据之前处于非活动状态,如何在 Form2 关闭之前找到 Form1 实例?

再说一遍,如何从 Form2 类中找到 Form1 类的实例?

谢谢

4

2 回答 2

51

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

var form1 = Application.OpenForms[0];

或通过表单的Name属性,如下所示:

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

希望这可以帮助。

于 2013-07-07T17:16:53.267 回答
-1

如果你打电话

Form1.ShowDialog(this)

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

this.Owner.Name

第二种形式(在您的情况下为 Form2)

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

于 2013-07-07T17:15:28.407 回答