C#限制MDI子窗體重復打開——C#判斷窗體是否已經打開 多種方法 2012-06-26更新


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;
        }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM