Form1是父窗体,Form2和Form3是子窗体,Form1打开Form2和Form3,如何在Form3中关闭Form2.

解决方案 »

  1.   

    有个笨方法(没有经过测试!!):
        在子窗体内提供一个public的关闭方法,其他子窗体通过Delegate执行该方法。
      

  2.   

    有个比较毒的方法 窗口static掉
      

  3.   

    在Form2中 的button事件下:
    form3 f3=new form();
    f3.close();
    或者在form2中
    public form3 f3;
    button事件下:f3.close();
    在form3Load事件中:form2 f2=new form2();
                      f2.f3=this;
      

  4.   

    Form1中代码:
    Form fm2 = new From();
    Form fm3 = new Form(fm2);
    fm2.show();
    fm3.show();Form3中代码:
    Form2 _fm2;
    public Form3(Form2 fm2)
    {
      _fm2 = fm2;  
    }
    _fm2.close();
      

  5.   

    fm2.MdiParent.MdiChildren[form3的索引].Close();
      

  6.   

    Application.OpenForm里保存着所有已经实例化打开的窗体,你只要在其中找到你要关闭的窗体就行了