首页 > Windows开发 > 详细

子窗体 禁止子窗体被重复打开 (代码片段方法)

时间:2020-04-26 20:12:08      阅读:65      评论:0      收藏:0      [点我收藏+]
     /// <summary>
        /// 禁止子窗体被重复打开(打开窗体为默认大小)
        /// </summary>
        /// <param name="formChild">实例子窗体</param>
        public void FrmDisposeNormal(Form formChild)
        {

            bool isOpened = false;                      //定义子窗体打开标记,默认位false
            foreach (Form form in this.MdiChildren)     //循环MDI中的所有子窗体
            {
                //销毁其他不是要打开的窗口实例
                if (formChild.Name != form.Name)
                {
                    form.Dispose();
                }
                if (formChild.Name == form.Name)          //若该窗体已被打开
                {
                    formChild.Activate();               //激活该窗体
                    formChild.StartPosition = FormStartPosition.CenterParent;
                    formChild.WindowState = FormWindowState.Normal;
                    isOpened = true;                    //设置子窗体的打开标记为true
                    formChild.Dispose();                //销毁formChild实例
                    break;
                }
            }

            if (!isOpened)                              //若该窗体未打开,则显示该子窗体
            {
                formChild.MdiParent = this;
                formChild.Show();
            }

        }
        public void FrmDispose(Form formChild)
        {

            bool isOpened = false;                      //定义子窗体打开标记,默认位false
            foreach (Form form in this.MdiChildren)     //循环MDI中的所有子窗体
            {
                //销毁其他不是要打开的窗口实例
                if (formChild.Name != form.Name)
                {
                    form.Close();
                }                
            }
            if (!isOpened)                              //若该窗体未打开,则显示该子窗体
            {                
                formChild.Show();
            }

        }
        /// <summary>
        /// 禁止子窗体被重复打开(打开窗体为最大化)
        /// </summary>
        /// <param name="formChild">实例子窗体</param>
        public void FrmDisposeMax(Form formChild)
        {

            bool isOpened = false;                      //定义子窗体打开标记,默认位false
            foreach (Form form in this.MdiChildren)     //循环MDI中的所有子窗体
            {
                //销毁其他不是要打开的窗口实例
                if (formChild.Name != form.Name)
                {
                    // form.Dispose();
                    form.Close();
                }
                if (formChild.Name == form.Name)          //若该窗体已被打开
                {
                    formChild.Activate();               //激活该窗体
                    formChild.StartPosition = FormStartPosition.CenterParent;
                    formChild.WindowState = FormWindowState.Maximized;
                    isOpened = true;                    //设置子窗体的打开标记为true
                    formChild.Close();                //销毁formChild实例
                    break;
                }
            }

            if (!isOpened)                              //若该窗体未打开,则显示该子窗体
            {
                formChild.MdiParent = this;
                formChild.WindowState = FormWindowState.Maximized;
                formChild.Show();
            }
        }

 

子窗体 禁止子窗体被重复打开 (代码片段方法)

原文:https://www.cnblogs.com/yangxukai/p/12781684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!