Winform 多窗口同时关闭

legendlovehao 2013-07-10 08:23:31
我需要调用一个界面多次 使用的Form1.Show();这个方法 点击几次出现几个Form1
然后我要在别的界面关闭的事件里进行把所有打开的Form1同时关闭掉 我使用的方法是
Application.OpenForms["Form1"].Dispose(); 可是这个只是关闭一个From1界面
使用 Form1t1 = new Form1();t1.Close();t1.Dispose(); 这个方法不起作用
有遇到过此类问题的朋友吗
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbenRH 2013-07-11
  • 打赏
  • 举报
回复
关闭的时候,这样子就可以了!

foreach (Form f in Application.OpenForms)
{
    if (f.GetType() == typeof(Form1)
    {
        f.Close();   
    }
}
请叫我卷福 2013-07-11
  • 打赏
  • 举报
回复
引用 6 楼 legendlovehao 的回复:
[quote=引用 5 楼 xiaozhi_5638 的回复:] 1.每次点击使用同一个Form1对象 2.将每次新new出来的Form1对象存放到一个集合,集中Close 3.只要不是主Form,关闭任何一个窗体 都不影响进程退出
这个问题已经解决了 能麻烦额外问一个问题嘛 一张图片原始宽高 我知道 缩放后放在控件内的宽和高我也知道 那么我现在求画在缩放后在原始图片上的坐标是不是 只要把横坐标和纵坐标乘以那个原始图片与缩放后的图片的比例就可以了 [/quote] 这是个数学问题。。。
legendlovehao 2013-07-11
  • 打赏
  • 举报
回复
引用 5 楼 xiaozhi_5638 的回复:
1.每次点击使用同一个Form1对象 2.将每次新new出来的Form1对象存放到一个集合,集中Close 3.只要不是主Form,关闭任何一个窗体 都不影响进程退出
这个问题已经解决了 能麻烦额外问一个问题嘛 一张图片原始宽高 我知道 缩放后放在控件内的宽和高我也知道 那么我现在求画在缩放后在原始图片上的坐标是不是 只要把横坐标和纵坐标乘以那个原始图片与缩放后的图片的比例就可以了
请叫我卷福 2013-07-11
  • 打赏
  • 举报
回复
1.每次点击使用同一个Form1对象 2.将每次新new出来的Form1对象存放到一个集合,集中Close 3.只要不是主Form,关闭任何一个窗体 都不影响进程退出
laisui 2013-07-11
  • 打赏
  • 举报
回复
你一定要这样操作的话,我凑了个办法

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();
Regan-lin 2013-07-11
  • 打赏
  • 举报
回复
我需要调用一个界面多次 使用的Form1.Show();这个方法 点击几次出现几个Form1我实在不明白LZ为什么要这样设计,你这样设计那你为什么直接在一个form1上操作就行了
feiniao19830822 2013-07-11
  • 打赏
  • 举报
回复
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();
            }
coobai 2013-07-11
  • 打赏
  • 举报
回复
引用 8 楼 benbenRH 的回复:
关闭的时候,这样子就可以了!

foreach (Form f in Application.OpenForms)
{
    if (f.GetType() == typeof(Form1)
    {
        f.Close();   
    }
}
+1
  • 打赏
  • 举报
回复
调用多次?每次用途一样吗?考虑单态。。
屌絲來襲 2013-07-10
  • 打赏
  • 举报
回复
別的界面關閉的事件? 是指要退出整個程序嗎? 試試application.exit();

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧