回 帖 发 新 帖 刷新版面

主题:C#中防止重复打开MDI子窗体

C#中防止重复打开MDI子窗体?

回复列表 (共5个回复)

沙发

方法很多
单件模式
变量控制

板凳

变量控制怎么做?举个例子来看看啊!

3 楼

        private bool CheckChildFrmExits(string ChildFrmName)
        {
            foreach(Form ChildFrm in this.MdiChildren)
            {
                if(ChildFrm.Name == ChildFrmName)
                {
                    if(ChildFrm.WindowState == FormWindowState.Minimized)
                        ChildFrm.WindowState = FormWindowState.Normal ;
                        ChildFrm.Activate();
                    return true;
                }
            }
            return false;
        }

4 楼

楼上的可不可以把程序简单的注释下啊,看的不是很懂

5 楼

楼上的这位网友好象没有关闭重复的MDI子窗体,反而激活了重名的子窗体。我觉得应该改成这样才更合适:
private bool CheckChildFrmExits(string ChildFrmName)
        {
            int num=0;
            foreach(Form ChildFrm in this.MdiChildren)
            {
                if(ChildFrm.Name == ChildFrmName)
                    num++;
            }
            if(num<=1) return false;
            foreach(Form ChildFrm in this.MdiChildren)
            {
                    if(num>1)
                        ChildFrm.Dispose();
                    else
                        return true;
            }
        }

我来回复

您尚未登录,请登录后再回复。点此登录或注册