winform中 未将对象引用设置到对象的实例。

时间:2021-10-30 21:27:46
同志们!问一个低级问题!!
未将对象引用设置到对象的实例。
我有A:Form 和B:Form 
在B中A a = new A();
然后在B窗体中a.A中的方法!!虽然可以访问!!但是里面的操作都提示
"未将对象引用设置到对象的实例"!!请问怎么解决啊!?
比如a.GetId()
public void GetId()
        {
            this.timer1.Enabled = true;//未将对象引用设置到对象的实例
            //其他的控件也变成这样了!
         }

请问是怎么回事啊!?

12 个解决方案

#1


这样写是可以的
看看其他的代码吧

#2


a.A中的方法中的变量要设成public,或者在构造函数里赋值

#3


A:Form 和B:Form 

在B中A a =null;
在调出B的时候这样写
B b=new B();
b.a=this;
b.show();

这个时候再用就可以了,你没有把对象统一起来

#4


传递A对象到B窗体
还有是否设置public
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(); 
        } 
    } 

#5


未将对象引用设置到对象的实例,无外乎这几种情况。设断点,单步调试。

System.NullReferenceException: 未将对象引用设置到对象的实例
1、ViewState对象为Null。 
2、DataSet为空。 
3、sql语句或Database的原因导致DataReader没有读取到数据。 
4、声明字符串变量时未赋空值就应用变量。 
5、一些对象未用new关键字初始化。 
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、重复定义造成未将对象引用设置到对象的实例错误. 

#6


帮顶!我有时候会遇到类似的问题,可是仔细调试下应该会知道是什么问题的。
希望能得到准确的答案!关注中。。。。。

#7


引用 4 楼 wuyq11 的回复:
传递A对象到B窗体    基本是这样的啊?
还有是否设置public //这里我以设置好了!
public partial class Form1 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show(this);
        }
        public void GetId()
        {
             this.timer1.Enabled = true;//报"未将对象引用设置到对象的实例"
               //我想问问为什么会出现这样的情况!
             //对其他控件的操作也是这样的@
        }
    }

    public partial class Form2 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 frm1 = (Form1)this.Owner;
            //我不是想单纯的给Form1中的控件赋值!
            //我想在此执行以下Form1中的GetId()
            ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
            this.Close();
        }
    }

#8



this.timer1是 在Form1里面定义的吗 ?

#9


控件 timer 要设置成public

你搜索一下timer 然后改成public就可以le·····

#10


引用 8 楼 xray2005 的回复:
this.timer1是 在Form1里面定义的吗 ?

有的!而且此方法在Form1中执行时没有问题的!
引用 9 楼 cljlove 的回复:
控件 timer 要设置成public

你搜索一下timer 然后改成public就可以le·····

谢谢!我试试!

#11


看不懂诶

#12


引用 11 楼 b273765159 的回复:
看不懂诶

winform中 未将对象引用设置到对象的实例。

#1


这样写是可以的
看看其他的代码吧

#2


a.A中的方法中的变量要设成public,或者在构造函数里赋值

#3


A:Form 和B:Form 

在B中A a =null;
在调出B的时候这样写
B b=new B();
b.a=this;
b.show();

这个时候再用就可以了,你没有把对象统一起来

#4


传递A对象到B窗体
还有是否设置public
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(); 
        } 
    } 

#5


未将对象引用设置到对象的实例,无外乎这几种情况。设断点,单步调试。

System.NullReferenceException: 未将对象引用设置到对象的实例
1、ViewState对象为Null。 
2、DataSet为空。 
3、sql语句或Database的原因导致DataReader没有读取到数据。 
4、声明字符串变量时未赋空值就应用变量。 
5、一些对象未用new关键字初始化。 
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、重复定义造成未将对象引用设置到对象的实例错误. 

#6


帮顶!我有时候会遇到类似的问题,可是仔细调试下应该会知道是什么问题的。
希望能得到准确的答案!关注中。。。。。

#7


引用 4 楼 wuyq11 的回复:
传递A对象到B窗体    基本是这样的啊?
还有是否设置public //这里我以设置好了!
public partial class Form1 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show(this);
        }
        public void GetId()
        {
             this.timer1.Enabled = true;//报"未将对象引用设置到对象的实例"
               //我想问问为什么会出现这样的情况!
             //对其他控件的操作也是这样的@
        }
    }

    public partial class Form2 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 frm1 = (Form1)this.Owner;
            //我不是想单纯的给Form1中的控件赋值!
            //我想在此执行以下Form1中的GetId()
            ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
            this.Close();
        }
    }

#8



this.timer1是 在Form1里面定义的吗 ?

#9


控件 timer 要设置成public

你搜索一下timer 然后改成public就可以le·····

#10


引用 8 楼 xray2005 的回复:
this.timer1是 在Form1里面定义的吗 ?

有的!而且此方法在Form1中执行时没有问题的!
引用 9 楼 cljlove 的回复:
控件 timer 要设置成public

你搜索一下timer 然后改成public就可以le·····

谢谢!我试试!

#11


看不懂诶

#12


引用 11 楼 b273765159 的回复:
看不懂诶

winform中 未将对象引用设置到对象的实例。