我定义了Form1和Form2 其实中Form1定义了一个TextBox和Button。TextBox不可编辑。当我点Form1的Button的时候,显示Form2,Form2也有一个TextBox和Button,Form2的TextBox显示Form1的TextBox内容,当点击Form2的Button的时候,将把他的TextBox结果传送到Form1的TextBox中,同时Form2关闭。 最后一步,Form2的内容怎么传到Form1呢?///Form1
private void button1_Click(object sender, System.EventArgs e)
{
Form2 editForm = new Form2();
editForm.textBox1.Text = this.textBox1.Text;
editForm.ShowDialog();
}///Form2 private void button1_Click(object sender, System.EventArgs e)
{
//???????????????????????????
Dispose(true);
}

解决方案 »

  1.   

    你可以定义一个FORM1的静态变量。通过这个变量来传递。
      

  2.   

    干嘛用这么多FORM放在一个不行么。
      

  3.   

    利用Form2的构造函数可以解决:
    1、将Form2的构造函数改为
    public Form2(TextBox tb){
    ...//原来内容
    this.textBox1.Text=tb.Text;//将参数的文本框的文本赋值给Form2中的文本框(TextBox)

    2、在Form1的button1的单击事件中修改Form2的实例化:
    Form2 f2=new Form2(this.textBox1);//将Form1中的文本框对象作为参数传递以上方法,问题解决。另外说一下,如果你想把Form1中的多个对象(值)传递到Form2中,你也可以将Form2的构造函数中的参数改为Form1对象本身,然后再一一复制。
    public Form2(Form1 f1){
    this.textBox1.Text=f1.textBox1.Text;
    this.button1.Text=f1.button1.Text;
    ...
    }
      

  4.   

    不好意思,把搂住的问题有点看错了,上面的帖子可以使你把Form1的成员传递到Form2中,要解决你的最后问题,你可以用上面的方法,只是在Form2中多声明一个TextBox对象,
    TextBox tb1;//不用实例化
    public Form2(TextBox tb){
    ...//原来内容
    this.tb1=tb;//将Form1中的textBox1的引用给Form2中的tb1,你修改tb1就是修改Form1中的textBox1