RT 在主窗体中 用了如下代码
ChildFormf childform=new ChildForm();
childform.ShowDialog();
 现在想在childfomr类里调用主窗体的引用。有什么方法。

解决方案 »

  1.   

    public Form1
    {
    Form2 frm=new Form2();
    frm.Show(this);
    }
    public Form2
    {
     Form1 frm=this.Owner;}
      

  2.   

    你应该为子窗体写公共的方法,然后在主窗体中调用。以下只是个例子:
    ChildFormf中:
    public string GetText()
    {
        //...
    }
    主窗体中:
    ChildFormf childform=new ChildForm();
    if (childform.ShowDialog() == DialogResult.OK)
    {
        this.Text = childform.GetText();
    }
      

  3.   

    如果一定要按你那种方法做的话,你可以为ChildFormf传一个Form类型的变量进去。
    ChildFormf中:
    //构造函数
    private Form _Form;
    public void ChildFormf(Form form)
    {
      _Form = form;
      //...
    }
    public void OtherMethod()
    {
      //这里就可以访问_Form了。
    }
    主窗体中:
    ChildFormf childform=new ChildForm(this);
    childform.ShowDialog();
      

  4.   

    在属性里把要引用的窗体的Modifers 设置为PUBLIC,然后在当前窗体创建上一个窗体的对象,比如
    要引用的窗体:Form1,当前窗体Form2
    在Form2中写   Form1 f1=new Form1();
    然后窗体form1 里面的东西就可以引用了,关键是一定要设成public,默认是private