有两个窗体:form1中有个TextBox1,form2中有TextBox2,在form1中点击按钮时,得到form2中TextBox2的值??

解决方案 »

  1.   

    form2的构造函数加参数,传入引用.
      

  2.   

    最笨的办法:form1实例一个form2,将textbox2的值public,直接访问
      

  3.   

    kellynt()   这样是传不了的
      

  4.   

    在构造函数中传递,或者设置为static 就可以直接访问
      

  5.   

    楼主请看:
    http://blog.csdn.net/lzt7/archive/2006/12/13/1441615.aspx
      

  6.   

    form2中TextBox2设为public 或者另建一个属性 返回form2中TextBox2的值
      

  7.   

    不好意思,我错了
    在实例form1或调用方法的时候,将form2的实例传入
      

  8.   

    1 构造函数
    2 委托
      Form1
         private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.paraDelegate = this.showpara;
                frm.Show();
            }
            void showpara(string s)
            {
                label1.Text = s;
            }    Form2
            public ParaTest paraDelegate;
            private void button1_Click(object sender, EventArgs e)
            {           
                if (paraDelegate != null)
                {
                    paraDelegate(textBox1.Text);
                }
                this.Close();
            }
      

  9.   

    方法多
    winform?
    1.用备用空间
    '生成
    dim f1 as new form1
    dim f2 as new form2
    '互相联系
    f2.tag = f1
    f1.tag= f2
    'f1(form1)中代码
    ...
      me.tag.textbox2.text = "f2中的textbox2"
    ...
    其他方法略
      

  10.   

    windows : 
    form f1=new form(参数)  form2的构造函数里接
    aspx :
    session["参数名字"]=参数;
    Response.Redirect("页面.aspx?参数名字="+参数);
    --------------------------------------------------------
    以上我比较常用
      

  11.   

    搞成public static的变量 Form2.XXX访问
      

  12.   

    form1中设一个public全局变量a,把form1中的textBox1的值放入全局变量a,然后在form2中调用a不就行了
      

  13.   

    Form1:
    public static Form1 MeCurrent;
    构造函数时把,MeCurrent设为this
    然后把要获得的控件 信息的那个控件设为public
    Form2:
    同理,同上
      

  14.   

    调用时,直接Form1.MeCurrent.控件
    和Form2.MeCurrent.控件这样调用
    就Ok 了
      

  15.   

    public static string name
    frm lf =new frm()
    lf.name
    --------------------------个性签名-------------------------------------
    Web技术群
    4446448 
    关注互联网开发和技术
    php、jsp、asp、.net、js、ajax……
    -----------------------------------------------------------------------
      

  16.   

    2个步骤
    1: 重写构造函数
    2: 把控件设为public(默认是private的)
      

  17.   

    通过控件来控制数据,即定义一个方法内,然后把控件(如:Textbox)作为参数传过去,然后在接收端给控件付值。
      

  18.   

    我来说两句:
     1)如果是一个主窗体与一个副窗体之间传信息,那么可以用构造函数,代码如下:
     窗体1:
    namespace WindowsApplication2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private Form2 aform2; //声明一个FORM2字段
     
            private void button1_Click(object sender, EventArgs e)
            {
                aform2 = new Form2(this);
                //调用重载的FORM2构造函数, 该构造函数设定了form2中的aform1字段为“this”
                aform2.label1.Text = "this is set from form1"; //窗体2中lable1设为公用
                aform2.Show();
            }
        }
    }
     
    窗体2:namespace WindowsApplication2
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            private Form1 aform1; //声明FORM1字段
            public Form2(Form1 myform1) //重载一个构造函数
            {
                InitializeComponent();
                this.aform1 = myform1; //通过该构造函数,设定aform1字段值
            }
            private void button1_Click(object sender, EventArgs e)
            {
                this.aform1.label1.Text = "this is set from2";  //控制form1 form1.label1设为公用
            }
        }

    2)如果是一个主窗体与多个副窗体,则应在主窗体的Designer.cs中实例化副窗体,如这样:
            public ShiFeiResolution.VegetableForm vegetableform = new VegetableForm();//注意它们是主窗体的属性!!!
            public ShiFeiResolution.XiaoMaiYuMiForm XiaoMaiYuMiform = new XiaoMaiYuMiForm();
            public ShiFeiResolution.FruitForm fruitForm = new FruitForm();
    这样可在主窗体中直接应运。
    3)如果是多个主窗体与一个副窗体之间传递信息,比如说点击任何一个主窗体中的按纽,就会弹出同一个副窗体(是同一个,而不是同样的窗体),就要在主窗体中这样写:
                GetSoilInfo getinfo;             //相当于一个temp变量
                getinfo = (GetSoilInfo)Application.OpenForms["GetSoilInfo"];            if (getinfo == null)
                    getinfo = new GetSoilInfo();//是否存在,如不存在,则创建
    if (checkBox2.Checked == true)                 getinfo.Show();
                else (checkBox2.Checked == false)
                    getinfo.Hide();这是我最近做一个项目时自己做的,望能帮上你的忙!!!
      

  19.   

    就这个了:http://hi.baidu.com/hhh3h