怎样将from1的text1.text传给from2的text3.text?
直接new不行的
感谢.

解决方案 »

  1.   

    class form1 : Form
    {
      public static form1 f1;
      static void Main()
      {
        Application.Run(f1 = new form1());
      }
    }class form2 : Form
    {
      form2()
      {
        text3.Text = form1.f1.text1.Text;
      }
    }
      

  2.   

    Form2 form2 = new Form2(text1.text);
    form2.text3.text = text1.text;
      

  3.   

    你花十分钟的时间,支看一下。以后关于窗体间传值的就不会再发贴子了。
    呵呵http://hi.baidu.com/libinguest/blog/item/0110fb1f077de96af624e4b0.html
      

  4.   

    首先把form1的desinger.cs里的text1的PRIVATE更改为public 然后在form2的构造方法中写上Form1 变量名,在FORM2的类中声明成员变量类型为FORM1的类型,让form2初始化时给这个成员变量赋值,其实就是让FORM2能够持有对FORM1的引用,然后就能在FORM2中通过你设置的成员变量名.text1来进行操作了。。
      

  5.   


    class Form1 : Form
    {
      public static string tb;
      private void button1_Click(object sender, EventArgs e)
      {
        tb=this.text1.Text;
        Form2 f2 = new Form2();
        f2.ShowDialog();
      }
    }class Form2 : Form
    {
      form2()
      {
        text3.Text = Form1.tb;
      }
    }
      

  6.   

    实际上,这个简单的问题并不简单:
     
    1. form下添加的所有控件被自动声明成Private
    2. 各个form并没有自动生成Global引用所以,解决这个问题的方法是:
    1. 生成Global引用,例如:public static class MyForms{public static gForm1: Form1;public static gForm2:Form2}; 然后在创建Form2/Form3实例的InitializeComponents方法中添加:Myforms.gForm2/3=this; 
    然后,你就可以使用form2/3的实例了。
    2. Form上的控件,要么你将自动声明改成Public;要么就是用Form.Controls.Find(ControlName,bool)[]