在我的winforms应用程序中,我多次使用另一种形式的form.ActiveForm。这是因为我不想要表单的新实例,只是将表单放在前面或以不同方式设置它的组件。但是我注意到,当我最小化表单时,form.ActiveForm返回一个NullReferenceException。我能做什么才能访问这个最小化的表单?似乎没有一种方法。还有另一种方法吗?
答案 0 :(得分:1)
将最小化的表单存储为主表单中的字段,并以该方式访问它。如果表单最小化,那么它不是“活动的”。但是,使用该字段,您仍然可以访问该字段。
答案 1 :(得分:1)
使用Application.OpenForms查找正确类型的表单:
foreach (var f in Application.OpenForms)
{
if (f is MyForm)
{
// do something...
break;
}
}
答案 2 :(得分:0)
保存对最小化表单的引用。如果您愿意,可以通过创建公共属性来存储第二个表单:
public MyForm myForm;
然后设置它:
MyForm frm = new MyForm();
frm.myForm = (first form reference here);
然后第二个表单可以使用myForm
直接引用第一个表单。