我有一个windows应用程序,里面包含两个Form,即Form1和Form2,Form1中有TextBox1,我想在Form2中的btnclick()事件中用Form1的TextBox1.Text,请问大家怎么写,参数如何传递,多谢啦!

解决方案 »

  1.   

    可以通过Application.OpenForms[]来找到Form1,如果TextBox1不是Public的,可以通过Controls来访问到TextBox1.
      

  2.   

    winform和asp.net的webform不一样,传递参数的概念尤其不同,网页是无状态的,所以有很多传递参数的说法,winform里,直接用就可以了,当然也可以设置访问属性,也可能提供一个属性给别的类访问
      

  3.   

    在form 里面设静态属性的方式来访问是可以的 
      

  4.   

    你也可以把 Form1 的 TextBox1 的 Modifiers 属性改成 Internal 或者 Public,直接在Form2中访问就行了
      

  5.   

    如果你是FORM1界面为主窗体,那就可以用我这个方法:在FORM2 中重写FORM2的构造函数 如:
     public partial class Form2 : Form
        {
            private Form1 form1;
            public Form2()
            {
                InitializeComponent();
            }        public Form2(Form1 form)
            {
                form1 = form;
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show(form1.textBox1.Text);
            }
        }
      

  6.   

    还有在FORM1中要写:
                Form2 obj = new Form2(this);
                obj.Show();
      

  7.   

    设成public
    要么设成静态
      

  8.   

    再问一下就可以结单了,两个form,如何使程序启动时,先弹出Form2呢?多谢!
      

  9.   


    namespace TextParamTest
    {
        public partial class Form2 : Form
        {
            private Form1 form1;        public Form2()
            {
                InitializeComponent();
            }
            public Form2(Form1 form)
            {
                form1 = form;
                InitializeComponent();
            }        private void ShowForm1Text_Click(object sender, EventArgs e)
            {
                MessageBox.Show(form1.MailRecvTxt.Text.Trim());
            }       
        }
    }为什么:MessageBox.Show(form1.MailRecvTxt.Text.Trim());
    总是报:"未将对象引用设置到对象的实例"异常呢?
      

  10.   

    [email protected]  另外,还要在form1中点击btn1,弹出form2来,谢谢!