在窗体1中点击打开窗体2,但不关闭窗体1,我在窗体2中的textbox中填入内容,点击修改,关闭窗体2,使窗体1的label1.text变成修改的值用构造函数不行啊。。难道用委托?求指教,谢谢

解决方案 »

  1.   

    嗯,用Dispatch来Invoke修改的内容吧。
    估计你是把修改窗体1的逻辑写进事件了。而且开的是多线程窗口。C#不允许非主线程直接修改控件内容的。
      

  2.   

    http://topic.csdn.net/u/20121007/11/a7e448b6-b45c-4bfb-bf7f-89a9b5dd07da.html参考
    我这个也是风马牛不相及
      

  3.   

    将窗体1的label1定义为public,窗体2里定义 窗体1的对象,new 窗体2时送入窗体1的实例,
    (窗体2构造函数里要接收),然后在窗体2里给它赋值,窗体1.label1.Text = "xxx"; 
    再将窗体1刷新一下
      

  4.   

    解决了,上代码:
    Form1里:
            public Label lb1;
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.lb1 = this.label1;
                f2.ShowDialog();
            }
    Form2里:
            public Label lb1;        private void button1_Click(object sender, EventArgs e)
            {
                lb1.Text= textBox1.Text;
                this.Hide();
                this.Close();
            }
    构造也没用。。不知道有没有什么缺陷啊
      

  5.   

    Form1里的 public Label lb1; 是多余代码