【发布时间】:2015-07-07 12:53:22
【问题描述】:
我在 C# 中创建了两个表单:form1 是主应用程序,form2 是登录窗口。 form1 有一个禁用自身并显示 form2 的按钮,而 form2 有一个启用主窗体并自行关闭的按钮。问题是当我尝试使用 form2 按钮启用 form1 时(我得到“Application.exe 中发生'System.NullReferenceException' 类型的未处理异常”)
这是form1的代码:
Login Login = new Login();
Login.Show();
this.Enabled = false;
form2(登录)代码:
(this.Owner as Form1).Enabled = true; ===> this line gets highlighted
Close();
【问题讨论】:
-
因为你在创建
Login表单的时候没有设置它的owner属性,所以它为null。它不会因为您以一种形式打开它而自动设置...另外,不要这样做:Login Login = new Login();,将变量命名为与您正在实例化的类型相同的坏习惯,这使得它很难如果以后需要,您可以在不完全限定类型的情况下调用静态方法。 -
如果您想以模态方式显示表单(自动禁用父级),请改为调用 ShowDialog。您能解释一下为什么要禁用 Form1 吗?