c#两个窗体间变量的引用。
比方说定义一个变量在form1里,通过textbox1.text输入。
怎么才能在form2里定义一个变量,是的form2里的变量等于form1里的?然后在 form2的文本框里输出。
大侠教教我啊。在网上都没找到合适的答案。

解决方案 »

  1.   

    在Form1中定义一个public static string str;  然后在Form1的一个按钮的Click事件下,写上代码:str=textbox1.text;
    Form2 fm2=new Form2();
    fm2.show();然后在Form2的Form2_Load()事件下 写上代码:
    textbox2.text=Form1.str;
    就可以显示了
      

  2.   

    楼主是想实现实时传值的效果吗?1.Form1中
    拖一个TextBox控件,变量名 txtFrm1;
    然后 编写如下代码:
    Form fr = Application.OpenForms["Form2"];
    if(fr!=null)
    {
      Form2 frm2 = (Form2)fr;
      frm2.SetValue = this.txtFrm1.Text;
    }
    2.Form2中
    拖一个TextBox控件,变量名 txtFrm2;
    编写如下方法:
    public string SetValue
    {
       this.txtFrm2.Text = value;
    }
      

  3.   

    错误 1 无法将类型“string”隐式转换为“bool”
    显示了这个 好像不对啊;
      

  4.   

    Application变量
    通过公共静态类进行传值; 
    使用Attribute 
    public partial class Form1 : Form 
        { 
            private void button1_Click(object sender, EventArgs e) 
            { 
                Form2 frm2 = new Form2(); 
                frm2.Show(this); 
            } 
        }     public partial class Form2 : Form 
        { 
            private void button1_Click(object sender, EventArgs e) 
            { 
                Form1 frm1 = (Form1)this.Owner; 
                ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text; 
                this.Close(); 
            } 
        } 
     
     
      

  5.   

    在Form2里设置一个string 变量,在Form2的构造函数里初始化就好了Form2 frm2 = new Form2();  
      frm2.Show(this.textBox1.text);  
    public Form2(string a)
    {
    Initialize();
    this.textBox.text=a;
    }
      

  6.   

    给Form2加一个带参的函数
    public class Form2
        {
            public Form2(string str)
            {
               TextBox2.Text = str;
            }        
        }
    初始化时传入要显示的字符串就行了