c#中启用和禁用表单
本文关键字:表单 启用 | 更新日期: 2023-09-27 18:01:19
我在c#中创建了两个表单:form1是主应用程序,form2是登录窗口。Form1有一个按钮可以禁用自己并显示form2, form2有一个按钮可以启用主表单并关闭自己。问题是当我尝试使用form2按钮启用form1时(我得到"Application.exe中发生了未处理的'System.NullReferenceException'
类型异常")
Login Login = new Login();
Login.Show();
this.Enabled = false;
form2(登录)代码:
(this.Owner as Form1).Enabled = true; ===> this line gets highlighted
Close();
将form1
中的这行代码从
Login.Show();
Login.Show(this);
或在显示前显式设置owner:
Login.Owner = this;
Login.Show();
否则,登录表单将没有所有者和this.Owner
将是空的,导致NullReferenceException
当你试图访问其成员。
您可以使用ShowDialog
,这将使在显示表单期间(同一应用程序的)所有其他表单无法访问:
using (var login = new Login()) {
login.ShowDialog(this);
}
您可以传递一个DialogResult
值作为返回码,将成功或失败传递给调用方法。