我在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();
答案 0 :(得分:4)
从{/ 1>}更改此行代码
form1
到
Login.Show();
或在显示之前明确设置所有者:
Login.Show(this);
否则,当您尝试访问其成员时,该登录表单将不会拥有所有者,Login.Owner = this;
Login.Show();
将为空this.Owner
。
答案 1 :(得分:1)
您可以使用ShowDialog
,这会使所有其他表单(同一应用程序)在表单显示期间无法访问:
<div id="canvas-holder" class='hide'>
<span id='spend'>Month-To-Date Spend By Service</span>
<canvas id="chart-area" style='width: 268px; height:259px;'/>
你可以传递一个DialogResult
值作为返回码,将成功或失败传递给调用方法。