关闭事件时更改另一个表单文本

时间:2015-05-20 13:41:10

标签: c#

我想在儿童表格关闭时更改我的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事件上尝试过,但我仍然遇到同样的错误。 当我实例化类时,我无法理解为什么它会给我一个空引用。

1 个答案:

答案 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