c#中如何从一个窗体向另一个窗体传值??初学者 说的越具体越好!!!

解决方案 »

  1.   

    Form2中定义构造函数。        public Form2(string str)
            {
                InitializeComponent();
            }
    这样调用就可以        private void button1_Click(object sender, EventArgs e)
            {
                new Form2("需要传的值").ShowDialog();
            }
      

  2.   


                Form2 f2 = new Form2();
                f2.Owner = this;  //这句相当于把本窗体都传给Form2
                f2.Show();
      

  3.   

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

  4.   

    传值方法有很多种啊:
    1。定义静态变量法(frmMain中的值传到frmInfo中为例):
    在frmMain中定义一变量,如:
    public static string msg=""; 在frmMain中为变量赋值,之后在frmInfo中就可以调用msg变量了。
    调用方法:frmMain.msg;
    2。可通过构造函数传值法(frmMain中的值传到frmInfo中为例):
    在frmInfo窗体中构造一个带参数的构造函数,如:
    sting strMsg=""; //全局变量
    public 类名(string msg)
    {
         ...
        strMsg=msg;
    }
    frmMain中传值时:
    frmInfo frmi=new frmInfo("要传的值");
    frmi.Show();   就行了。
    3。可将frmMain中要传值的空间设为共有public,在frmInfo中: frmMain.空间名 获取值。
    ////注:推荐1,2方法。耦合性较低。
      

  5.   

    静态类传值public static class test
    {
        public static string value;
    }
    form1中
    string str=textbox.text;
    test.value=str;//保存值
    form2中
    string str=test.value;//这个就是form1中文本框textbox的值
      

  6.   

    class A{
    private  int a1;
    ....
    }
    class B{
    private  int b1;
    ....
    }
    A a=A();
    a.a1=10;
    B b=B();
    b.b1=a.a1;
    这样不知道行不,当然也可以用构造传递参数。