请教一个问题!如何在一个窗口中访问另一个窗口的成员变量啊? 
例如:在Form1 中 new 了一个Form2
我想在Form2中来访问Form1中的成员变量A该如何写代码啊??最关键的是如何获取Form1的实例.

解决方案 »

  1.   

    或者把参数定义到class里
    用form1和form2都用this调用
      

  2.   

    设置form2的owner为form1,然后在form2中 form1 frm = (form1)this.owner这样就可以引有用了.
      

  3.   

    在你的Form2的构造函数中加入一个System.Windows.Forms.Form类型的参数调用Form2的时候,把Form1作为参数传进来另外,把Form1中你想访问的成员变量设置为public的,或者建立一个属性进行访问
      

  4.   

    这种问题问的人挺多的嘛!简单的方法就是设置成public
    或者添加一个属性
    private string vvv;
    public string v
    {
    get{return vvv}
    set{vvv=value}
    }
    然后在窗体中对v进行设值,然后在你要用的窗体中访问vvv就可以了
      

  5.   

    首先先感激一下大家的踊跃解答
    有不少的朋友都提出使用Public 类型的公共变量,但是我想强调一下这个问题的重点Form2 是由 Form1 生成的!也就是说!如果直接定义一个Public 类型的公共变量 P_AClass Form1 
    {
      Public string Ps_A
    }如果是在Form2 中直接生成Form1 ,要访问Ps_A是相当容易的事情!
    直接在Form2中
    Class Form2
    {
       string ls_form1_A;   Form1 form1 = new Form1();
       ls_form1_A = form1.Ps_A;   
    }就可以了!
    但是我现在遇到的问题是Form1先生成,Form2是在Form1中生成的!
    Class Form1
    {
       Form2 form2 = new Form2();
       ........
    }
    并且在程序的运行中Ps_A是在根据不同的条件在变的!
    这样一来就不能直接在Form2中用
       Form1 form1 = new Form1();
       ls_form1_A = form1.Ps_A;   
    来访问了! 
      

  6.   

    感谢
     zhgroup(机器不会错,错的是人!) 
    的解答,在这里我自己来补充一下:
    如果是在两个无关的窗体间要实现上述的访问可以使用Form的Owenr属性
    在Form1中添加:
    Form2 form2 = new Form2();
    this.AddOwnedForm(form2);在Form2中添加:
    Form1 form1 = (Form1)this.Owner;  //直接将已经存在的Form1与form1关联起来
    之后就可以适时的访问Form1中的Public变量了如果是在MDI窗体间要实现上述的访问可以使用Form的ParentForm属性
    在Form1中添加:
    Form2 form2 = new Form2();
    form2.MdiParent = this;在Form2中添加:
    Form1 form1 = (Form1)this.ParentForm;  //直接将已经存在的Form1(MDI主窗口)与form1关联起来
    之后就可以适时的访问Form1中的Public变量了