有一个Main窗体,还有一个para窗体并且已经把Main窗体里的所有textBox的Modifiers属性设为Public下面是para窗体的确定按钮代码public Main main=new Main();private void btnOK_Click(object sender, EventArgs e)
{
     main.txtSpreadTemp.Text = td.nSpreadTemp.ToString() + "°C";
     ...
     this.Close();
}我有断点查看td.nSpreadTemp的值为20,但就是改变不了main.txtSpreadTemp.Text 的值(原值为50),运行后还是50我就感到很奇怪,为什么不能改变其值呢?大家帮帮忙,万分感谢!

解决方案 »

  1.   

    public Main main=new Main();
    你这里main是新创建的窗体,与你看到的Main窗体根本不是同一个对象
    你可以在para类里加一个构造函数:public para(Main main)
       :this()
    {
        this.main = main;
    }
    然后在Main中打开para时调用这个构造函数:para p = new para(this);
    p.Show();
      

  2.   

    你那种写法是重新new 了一个main窗体,要想办法把main窗体传到当前窗体,或者利用委托什么的改变。楼上的就行![align=center]*****************************************
    本内容使用CSDN小秘书回复
    每天回帖即可得10分可用分!
    *****************************************[/align]
      

  3.   

    肯定不能new main啊,这样就不是一个对象了。
    要么用1楼方法,要么用单例模式。