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