错误:未将对象引用设置到对象的实例
代码:
Form1 frm = new Form1();
frm=(Form1)this.Owner;
if (frm.richtextBox1.text!="")
{
}
错误出在if条件判断语句中,为什么frm在这里为空?
代码:
Form1 frm = new Form1();
frm=(Form1)this.Owner;
if (frm.richtextBox1.text!="")
{
}
错误出在if条件判断语句中,为什么frm在这里为空?
this.owner是 获取拥有此窗体的窗体。显然,你这个form1是最顶层窗体了,哪个窗体还能拥有它呢?
我想你是想想获取这个窗体本身吧:frm=(Form1)this;
frm=(Form1)this.Owner;
if (frm.richtextBox1.text!="")
{
}
是子窗体的代码、
你父窗体调用子窗体的时候 子窗体.show(this);
也就是你当前窗体不属于其它窗体
其实你是想得到Owners窗体,你根本不需要new。
直接Form frm =this.Owner
如果你Owner有值,你引用它时不会有问题,如果没有值就会报错,
this.Owner出错,子窗体是否设置
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);
}
} public partial class Form2 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
this.Close();
}
}
frm2.Show(this);这一句为什么要加this?与不加有何区别,谢谢!
此处this指的是Form1 窗体,加了这个就说明Form1 拥有frm2,
frm2.Owner就是Form1了
这句有问题