C# 父窗体给予NullReferenceException

C# 父窗体给予NullReferenceException,c#,C#,当我试图更改父窗体中的标签时,它会给我一个NullReferenceException 表格1 public string LabelText { get { return label1.Text; } set { label1.Text = value; } } private void Form1_Load(obje

当我试图更改父窗体中的标签时,它会给我一个NullReferenceException

表格1

    public string LabelText
    {
        get
        {
            return label1.Text;
        }
        set
        {
            label1.Text = value;
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.ShowDialog();
    }
表格2


您应该检查
Owner
表单,而不是
ParentForm
。在打开第二张表单时,您应该传递所有者:

private void Form1_Load(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.ShowDialog(this);
}
表格2:

private void button1_Click(object sender, EventArgs e)
{
    ((Form1)Owner).LabelText = textBox1.Text;
    this.Close();
}
但这仍然不是在表单之间传递数据的最佳方式。在
Form2
窗体上创建公共属性,并在关闭子窗体后在
Form1
中读取它们的值,如果
DialogResult
返回
OK

private void Form1_Load(object sender, EventArgs e)
{
    using(Form2 f2 = new Form2())
    {
        if (f2.ShowDialog() != DialogResult.OK)
           return;

        LabelText = f2.SomeValue;   
    }
}

可能父窗体为空?您没有告诉Form2它有父窗体。执行此操作:
form2f2=新的Form2(此)
private void Form1_Load(object sender, EventArgs e)
{
    using(Form2 f2 = new Form2())
    {
        if (f2.ShowDialog() != DialogResult.OK)
           return;

        LabelText = f2.SomeValue;   
    }
}