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