我想在儿童表格关闭时更改我的MdiParent表格中的标签文字。但我收到此错误“yourprogram.exe中发生了'System.NullReferenceException'类型的未处理异常”。 这是我的代码:
private void Employees_FormClosing(object sender, FormClosingEventArgs e)
{
(MdiParent as MainForm).setStatusText = "Ready";
}
我的代码采用MdiParent Form:
public string setStatusText
{
set
{
tsStatus.Text = value;
}
}
我也在Employees_FormClosed事件上尝试过,但我仍然遇到同样的错误。 当我实例化类时,我无法理解为什么它会给我一个空引用。
答案 0 :(得分:0)
此代码来自您的评论:
private void addEmployeeToolStripMenuItem_Click(object sender, EventArgs e)
{
Employees emp = new Employees();
emp.MdiParent = this.MdiParent;
emp.Show();
tsStatus.Text = "Adding Employee";
}
当我理解正确时,您的setStatusText
方法与addEmployeeToolStripMenuItem_Click
方法属于同一类。
这意味着行emp.MdiParent = this.MdiParent;
错误。
它应该是emp.MdiParent = this;
,因为您不想将您的父母设置为您的孩子,您希望将自己设置为您孩子的父母。
修改强>
使用NullReferenceException
时获得as
可能意味着两件事。
您的变量(在本例中为MdiParent
)为null
或您的变量属于正确类型,在本例中为MainForm
。