我用构造函数传回到form1中并赋给了textbox,但是textbox显示并没有改变

解决方案 »

  1.   

    窗体1 实例化窗体2的时候将窗体1做为参数:
    Form2 form2 = new Form2(this);
    Form2.Show();
    this.Hide();窗体2:
    构造函数中获得Form1然后可以Form1.textbox.Text = "123";
      

  2.   

    Form2 里存一个Form1,直接赋值
      

  3.   


    这样并没有打开form2,而是弹出了一个新的窗口
      

  4.   


    这样并没有打开form2,而是弹出了一个新的窗口
    大小写忘记区分了,改一下不就好了
      

  5.   


    这样并没有打开form2,而是弹出了一个新的窗口
    大小写忘记区分了,改一下不就好了
    不是大小写的问题!我肯定会注意的啊
      

  6.   

    form2.Show();
    怎么会,你说的并没有打开form2什么意思,那弹的新窗口不是form2是什么?
      

  7.   

    Form1窗体添加一个TextBox、一个Button
    新建Form2窗体:添加一个TextBox、一个Button
    Form1代码:private void button1_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
      form2.SendMsg += (s) => { textBox1.Text = s; };
      form2.Show();
    }
    Form2代码:public delegate void DeSendMsg(string str);
    public event DeSendMsg SendMsg;private void button1_Click(object sender, EventArgs e)
    {
      SendMsg(textBox1.Text);
    }
    点击Form1的button弹出Form2,点击Form2的button,把Form2的TextBox值赋给Form1的TextBox中
      

  8.   

    用委托 。我也是新学的  自己练手的  完美实现  而且是form2值改变的同时 form1也实时改变
    form1:
    private void button5_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.TextBoxChanged += new EventHandler((sender1,e1) => { textBox1.Text = f2.TextBoxValue; });
                f2.ShowDialog();
            }form2:public event EventHandler TextBoxChanged;
    private void textBox1_TextChanged(object sender, EventArgs e)
            {
                if(TextBoxChanged != null)
                {
                    TextBoxChanged(this, e);
                }
            }
      

  9.   

    form2里面增加个定义:        public string TextBoxValue { get { return textBox1.Text; } set { textBox1.Text = value; } }
      

  10.   

    《C# 窗体间传值方法大汇总》https://blog.csdn.net/arwang/article/details/82726452