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