• C#限制MDI子窗体重复打开——C#判断窗体是否已经打开 多种方法 20120626更新


    private bool HaveOpened(Form 父窗体, string 子窗体Name)
    {
    //查看窗口是否已经被打开
    bool bReturn = true;
    for (int i = 0; i < 父窗体.MdiChildren.Length; i++)
    {
    if (父窗体.MdiChildren[i].Name == 子窗体Name)
    {
    父窗体.MdiChildren[i].BringToFront();
    bReturn = false;
    break;
    }
    }
    return bReturn;
    }
     
     
    打开窗体时调用上述方法:
     
    Form1 f1=new Form();
    if (HaveOpened(父窗体, "子窗体Name"))
    {
    f1.MdiParent = 父窗体;
    f1.Show();
    }

    通过窗口名判断是否已经打开窗口,如此做的好处就是一个窗体通过不同的Name打开多个这个窗口

    比如说不同的模块打开不同的Mdi父窗体.但相同的Name只能打开一个

    /// <summary>
            /// 判断是否打开Mdi的窗口,如打开则得到窗口
            /// </summary>
            /// <param name="asFormName"></param>
            /// <returns></returns>
            public Form CheckMdiFormIsOpen(string asFormName)
            {
                Form form = null;
                foreach (Form frm in Application.OpenForms)
                {
                    if (frm.Name == asFormName)
                    {
                        form = frm;
                        break;
                    }
                }
                return form;
            }
    private bool ContainMDIChild(string childTypeString)
            {
                Form form = null;
                foreach (Form form2 in base.MdiChildren)
                {
                    if (form2.GetType().ToString() == childTypeString)
                    {
                        form = form2;
                        break;
                    }
                }
                if (form != null)
                {
                    //form.TopMost = true;
                    form.Show();
                    form.Focus();
                    return true;
                }
                return false;
            }
    
            private bool ContainChild(string childTypeString)
            {
                Form form = null;
                foreach (Form form2 in Application.OpenForms)
                {
                    if (form2.GetType().ToString() == childTypeString)
                    {
                        form = form2;
                        break;
                    }
                }
                if (form != null)
                {
                    //form.TopMost = true;
                    form.Show();
                    form.Focus();
                    return true;
                }
                return false;
            }
  • 相关阅读:
    互动媒体学习社区-ASP.NET MVC 后台用户管理模块
    互动媒体学习社区-ASP.NET MVC 开发步骤
    互动媒体学习社区-ASP.NET MVC 数据库设计
    辗转相除法求最大公约数和最小公倍数分析
    C语言循环
    C语言中语句的跨行支持总结
    值得一学的C语言
    概率论
    Saul's Blog
    深入浅出 神经网络
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/2380091.html
Copyright © 2020-2023  润新知