WPF 如何关闭除主窗体以外的窗体?

_害虫 2013-08-28 05:58:14
在WPF中 有主窗体W0 通过控件可以打开W1 W2和W3共3个窗体

现需要在打开其中一个窗体的时候将其他的窗体关闭,如何做?而且本窗口不能被多次打开,而W0窗体我还要用来做键盘 子窗体只能打开一个,互斥。
有没人搞过,我现在焦头烂额啊
...全文
280 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
_害虫 2013-09-02
  • 打赏
  • 举报
回复
weboscar,你好 我按照你给的代码试了下,不知道哪里还有问题。只能在调用窗口的时候实例化,结果就是同一窗口能打开多个 而且我在调用第二种窗口的时候会报这个错误: 索引超出范围。必须为非负值并小于集合大小。 参数名: index
weboscar 2013-08-29
  • 打赏
  • 举报
回复
应该这样就行了!

private void CCForm()
        {
            int n = Application.Current.Windows.Count;           
          
            for (int a = 0; a < n; a++)
            {
                for (int i = 0; i < Application.Current.Windows.Count; i++)
                {
                    string x = Application.Current.Windows[i].Name;
                    if (x != "主窗体W0") Application.Current.Windows[i].Close(); 
                }
            }
        }
weboscar 2013-08-29
  • 打赏
  • 举报
回复
不是主窗体W0都把它关掉~

 private void CCForm()
        {
            int n = Application.Current.Windows.Count;
            ArrayList FormNameList = new ArrayList();
            for (int a = 0; a < n; a++)
            {
                FormNameList.Add(Application.Current.Windows[a].Name);
            }
            for (int a = 0; a < n; a++)
            {
                for (int i = 0; i < Application.Current.Windows.Count; i++)
                {
                    string x = Application.Current.Windows[i].Name;
                    if (x != "主窗体W0") Application.Current.Windows[i].Close();

                }
            }
        }

110,536

社区成员

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

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

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