C#已打开的窗口列表

Comforter 2009-11-29 05:17:00
我想在我的程序里实现隐藏已打开窗体的功能,程序有以下几个窗口mainForm,Form1,form2,Form3.在mainForm中可以调用其它几个窗体,但不是MDI窗体,我想定义一个变量来存储已打开的窗口,在Form1,form2,Form3这三个窗体打开时将他们加入这个变量,关闭时从变量里删除,这样遍历变量就可以隐藏窗口,这个怎么实现啊
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Comforter 2009-11-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sdfkfkd 的回复:]
所有打开的窗口都在Application.OpenForms中
[/Quote]
这个方法最简便
特别 2009-11-29
  • 打赏
  • 举报
回复
所有打开的窗口都在Application.OpenForms中
Snowdust 2009-11-29
  • 打赏
  • 举报
回复
2楼正解
飛雪傳奇 2009-11-29
  • 打赏
  • 举报
回复
主窗体中遍历隐藏
froeach(Form f in fromAccess.fromCollection)
{
f.Hide();
}
飛雪傳奇 2009-11-29
  • 打赏
  • 举报
回复
先创建一个公共类,包含一个窗体集合
public Class formAccess
{
public static List<Form> formCollection=new List<Form>();
}

在Form1,form2,from3的load事件中添加如下代码:
fromAccess.fromCollection.Add(this);

在from1,from2,from3的closed事件中添加如下代码:
formAccess.fromCollection.Remove(this);
Sugar_Tiger 2009-11-29
  • 打赏
  • 举报
回复
建立全个全局变量

bool bForm1Open=fasle;
bool bForm2Open=fasle;
bool bForm3Open=fasle;


mainForm在调用其它form的时候会建立他们的对象

Form1 fm1=new Form1();
fm1.Show();
bForm1Open=true; //打开后设置为真


然后写个委托,在Form1,form2,Form3的窗体里重写OnClosed事件,然后在这里面用委托把
bForm1Open,bForm2Open,bForm3Open的值设置为假就是.



111,120

社区成员

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

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

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