1. 程式人生 > WINDOWS開發 >子窗體 禁止子窗體被重複開啟 (程式碼片段方法)

子窗體 禁止子窗體被重複開啟 (程式碼片段方法)

     /// <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(); } }