我需要调用一个界面多次 使用的Form1.Show();这个方法  点击几次出现几个Form1
然后我要在别的界面关闭的事件里进行把所有打开的Form1同时关闭掉 我使用的方法是
Application.OpenForms["Form1"].Dispose(); 可是这个只是关闭一个From1界面
使用 Form1t1 = new Form1();t1.Close();t1.Dispose(); 这个方法不起作用
有遇到过此类问题的朋友吗WinForm界面

解决方案 »

  1.   

    別的界面關閉的事件? 是指要退出整個程序嗎?
    試試application.exit();
      

  2.   

    我需要调用一个界面多次 使用的Form1.Show();这个方法  点击几次出现几个Form1我实在不明白LZ为什么要这样设计,你这样设计那你为什么直接在一个form1上操作就行了
      

  3.   

    你一定要这样操作的话,我凑了个办法using System.Collections;ArrayList alForm1 = new ArrayList();//打开窗口的时候
    Form1 f1 = new Form1();
                f1.Show();
                alForm1.Add(f1);
    //关闭的时候
    for(int i=0;i<alForm1.Count;i++)
                    {
                        ((Form1)alForm1[i]).Close();
                    }
                    alForm1.Clear();
      

  4.   

    1.每次点击使用同一个Form1对象
    2.将每次新new出来的Form1对象存放到一个集合,集中Close
    3.只要不是主Form,关闭任何一个窗体 都不影响进程退出
      

  5.   

    关闭的时候,这样子就可以了!foreach (Form f in Application.OpenForms)
    {
        if (f.GetType() == typeof(Form1)
        {
            f.Close();   
        }
    }
      

  6.   

    List<Form> lst = new List<Form>();
                foreach (Form fm in Application.OpenForms)
                {
                    if (fm is Form1)
                    {
                        lst.Add(fm);
                    }    
                }            foreach (Form fm in lst)
                {
                    fm.Close();
                }