C# WinForm和WPF关闭所有子窗口的方法
WinForm中操作:
// 遍历并关闭所有子窗口 FormCollection childCollection = Application.OpenForms; for (int i = childCollection.Count; i-- > 0;) { if (childCollection[i].Name != "父窗口标题")
childCollection[i].Close(); } // 或者也可以这样写: FormCollection childCollection = Application.OpenForms; for (int i = childCollection.Count; i-- > 0;) { if (childCollection[i].Name != this.Text)
childCollection[i].Close(); }
WPF中操作:
// 遍历并关闭所有子窗口 Window[] childArray = Application.Current.Windows.Cast<Window>().ToArray(); for (int i = childArray.Length; i-- > 0;) { Window item = childArray[i]; if (item.Title == "") continue; // 忽略无标题窗口 if (item.Title != "父窗口标题")
item.Close(); } // 或者也可以这样写: Window[] childArray = Application.Current.Windows.Cast<Window>().ToArray(); for (int i = childArray.Length; i-- > 0;) { Window item = childArray[i]; if (item.Title == "")
continue; // 忽略无标题窗口 if (item.Title != this.Title)
item.Close(); }
总结, 注意WPF中调试要排除无标题窗口,否则会导致程序被关闭。
这里的无标题窗口是WPF的界面调试器,如果它被关闭会导致被调试的程序也被关闭,Release程序可以不用对无标题窗口进行排除。
原文链接:https://blog.csdn.net/ymh441915964/article/details/78997725
龙腾一族至尊龙骑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2016-05-21 存储过程系列之调试存储过程 SQL Server 2005
2016-05-21 存储过程系列之存储过程返回值总结
2016-05-21 存储过程系列之存储过程具体操作过程及sql数据库调用
2016-05-21 存储过程系列之存储过程sql数据库调用和程序代码调用
2015-05-21 Delegate、Predicate、Action和Func