各位大侠,请问C#中如何在子窗体中访问父窗体的方法?
例如我要调用Form1(主窗体)中的Write(),我的做法如下:
  Form1 r = new Form1()//在子窗体(Form2)中定义
  r.Write();
运行时出现异常!!!
请各位大侠帮忙!!!

解决方案 »

  1.   

    父窗体:
      Form2 f = new Form2();
      f.Owner = this;
      f.ShowDialog();
    子窗体: 
     Form1 r = new Form1()//在子窗体(Form2)中定义
      r = (Form1)this.Owner;
      r.Write();
      

  2.   

    ((父窗体对象名)this.Owner).父窗体public方法();
      

  3.   

    或者你的Write()方法里有问题。
      

  4.   

    父窗体里的write方法必须是public 
    lovvver(EBright电子闪光系列软件) 说的是一种方法,你也可以更改子窗体的构造函数,把父窗体作为参数传过去。
    子窗体构造函数:
    private Form1 frm1;
    Form2(Form1 fr)
    {
       ...
       frm1=fr;
      ...
    )
    父窗体:
    Form2 frm2=new Form2(this);
    frm2.show();
      

  5.   

    一楼正解,只能调用父窗体的public方法
      

  6.   

    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx