比如把,我想在form2的一个按钮事件里设置form1中的textbox1为“AAA”,在form1中的  按钮事件中创建form2并显示    
 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.ShowDialog();
        }form2中的按钮事件:        
        private void button2_Click(object sender, EventArgs e)
        {
         //那么在form2中的按钮事件中,如何设置form1中的form1.textbox1.text="AAA"?
         .......................
        }

解决方案 »

  1.   

    这个问题机会留给楼下。不过showdialog方式需要等到窗体关闭才可以看到Form1的文本框赋上值。
      

  2.   

    或者在form1中自定义一个消息,和一个函数,让这个消息触发运行这个函数。。然后从form2发送这个消息给form1,如postmessage等。
      

  3.   

    http://topic.csdn.net/u/20110407/19/c1068d69-7331-4d02-bc0b-f5ba7a5f8dd8.html?66875
      

  4.   

    Form2 f2 = new Form2();
    // 增加这一句
    f2.Ower = this;然后写一个方法Fun****() 设置textbox的textForm2的按钮事件中:
    Form1 ower = (Form1)this.Owner;
    ower.Fun****();
      

  5.   

    对,让lz自己看吧lz可以下载我的程序来看。
      

  6.   

     //form1
     delegate void SetTextHandler();  
     public SetTextHandler SetText;
     private void button1_Click(object sender, EventArgs e)
      {
        SetText += delegate {this.textbox1.Text = "AAA";};
        Form2 f2 = new Form2(this);
        f2.ShowDialog();
      }
      
    form2中的按钮事件:  
      Form1 from1;
      public Form2(Form1 form)
      {
         form1 = form;
       }
      private void button2_Click(object sender, EventArgs e)
      {
         if (form1.SetText != null)
              form1.SetText();
      }
      

  7.   

    改变Form2的构造函数Form1 _frm1
    Form2(ref Form1 frm1)
    {
    _frm1 = frm1;
    }
    然后你就可以改变frm1的属性了
      

  8.   


           ///form1代码
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2(ref this.textBox1);
                 f2.ShowDialog();        }
           ///form2代码
               public partial class Form2 : Form
        {
            private TextBox f1tb = null;
            public Form2(ref TextBox tb)
            {
                InitializeComponent();
                this.f1tb = tb;
            }        private void button1_Click(object sender, EventArgs e)
            {
                f1tb.Text = "设置值";
            }
        }
      

  9.   

    Form2 f2 = new Form2();
    // 增加这一句
    f2.Ower = this;然后写一个方法GetTextValue() 设置textbox的textForm2的按钮事件中:
    Form1 ower = (Form1)this.Owner;
    ower.Fun****();