在关闭事件上更改另一个窗体文本
本文关键字:另一个 窗体 文本 事件 | 更新日期: 2023-09-27 17:49:55
我想改变一个标签的文本在我的MdiParent表单当一个子窗体关闭。但是我得到这个错误"类型为'System '的未处理异常。NullReferenceException' occurred in yourprogram.exe '。这是我的代码:
private void Employees_FormClosing(object sender, FormClosingEventArgs e)
{
(MdiParent as MainForm).setStatusText = "Ready";
}
我在我的MdiParent表单中有以下代码:
public string setStatusText
{
set
{
tsStatus.Text = value;
}
}
我在Employees_FormClosed事件上也试过了,但我仍然得到同样的错误。我只是不明白为什么它给我一个空引用当我实例化类
这段代码取自你的注释:
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
)。