比如窗体Form1,我在另一个窗体中多次调用该窗体,每次调用都这样:
Form1 XX=new Form1();
XX.show();
XX根据调用情况可以改变。
最后,有一个按钮,点击后将这所有的XX一次全部关闭,但调用这些窗体的主窗体不会关闭,需要用Form1的哪个属性?
用代码怎样写呢?
谢谢。

解决方案 »

  1.   

    最后,有一个按钮,点击后将这所有的XX一次全部关闭搂主可以在这个按钮的单击事件里写Application.Exit就可以了
      

  2.   

    不行吧,Application.Exit会不会关闭掉主窗体啊?
      

  3.   

    哦,那是的。会关闭所有窗口这样的话,搂住可以这样做:
    还是你的那个按钮的单击事件,写下面代码:
    FormCollection openForms = Application.OpenForms;
    foreach (Form frm in openForms)
    {
        if (frm != this && frm.IsHandleCreated)
        {
            frm.Close();
        }
    }这样就可以了,但要保证这个this主窗体或者说这个按钮所在窗口是主窗口
      

  4.   

    谢谢啦,我试试看。
    不过还有个问题,能不能指定关闭的是Form1窗体类的所有窗体呢?
    这样做好像会关闭很多其他窗体吧。
      

  5.   

    也可以呀,但要保证,你说的“Form1窗体类的所有窗体”中这些窗体的Owner属性是Form1FormCollection openForms = Application.OpenForms; 
    foreach (Form frm in openForms) 

        if (frm != this && frm.IsHandleCreated && frm.Owner==this) 
        { 
            frm.Close(); 
        } 
      

  6.   

    呵呵,那你肯定是没有设置:这些窗体的Owner属性是Form1 
      

  7.   

    使用List<Form>保存创建的窗体,在关闭时遍历该列表即可