老兄,我也在想这个问题。这在VB6中是很容易的(在控件名前加上FORM名就可以了),可C#就是不行。有答案了没有??

解决方案 »

  1.   

    假设你的三个窗体为Form1,Form2,Form3,
    在Form1里打开Form2时,
    Form2 form2=new Form2();
    form2.Owner=this;
    在Form2里打开Form3时,
    Form3 form3=new Form3();
    form3.Owner=this;在Form3里,你可以这样做,Form1 form1=(Form1)this.Owner.Owner;
    form1.button1.Text="haha"; //你要吧button1的属性改成public或者
                                  增加一个set
      

  2.   

    感谢您使用微软产品。您可以通过设置并访问Form的Owner属性来达到这一目的,例如,您可以在创建一个窗体时指定Owner属性:Form frm = new Form();
    frm.Owner = this;
    frm.Show();然后在From3中可以通过下列语句访问Form1窗体:if(this.Owner != null)
    if(this.Owner.Owner != null)
    this.Owner.Owner.Text = "Hello";当然您也可以定义一个静态成员(相当于全局变量)来存储指向Form1的引用,这烟您就可以在任何地方通过访问这个静态成员来访问Form1。但前提是您的AppDomain中只有一个Form1的实例。-微软全球技术中心 VC开发支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。