C#限制MDI子窗体重复打开——C#判断窗体是否已经打开 多种方法 2012-06-26更新
2012-03-05 10:49
711 查看
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; }
相关文章推荐
- C#限制MDI子窗体重复打开——C#判断窗体是否已经打开
- C# 判断窗体是否打开 如果打开激活窗体 两种方法
- C#的MDI窗体判断子窗体是否已经打开
- C#判断窗体是否存在重复打开
- 【自用】C# 判断窗体是否已打开,避免重复打开同一窗体
- (转)判断一个字符串是否全是数字的多种方法及其性能比较(C#实现
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- C#中避免相同MDI子窗口重复打开的方法
- C#中避免相同MDI子窗口重复打开的方法
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- C#判断指定驱动器是否已经准备就绪的方法
- 判断一个窗体是否已经打开
- C#中避免相同MDI子窗口重复打开的方法
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- MFC 判断子窗体是不是已经打开,避免重复创建
- c#判断数据库服务器是否已经启动的方法
- C#判断页面中的多个文本框输入值是否有重复的实现方法
- C#中,把激活已经打开的窗体的代码封装成方法来用
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C# Winform 防止MDI子窗体重复打开