热门IT资讯网

如何实现MDI窗体不重复打开同一个子窗体?

发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性--MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以

使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性--MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以通过判断被打开子窗体的名称来禁止子窗体被重复打开。
例如,下面的代码实现在MDI框架窗体中不重复打开同一个子窗体:

01  FormChildformChild = newFormChild();//实例化FormChild子窗体02  boolisOpened = false;//定义子窗体打开标记,默认值为false03  foreach (Formforminthis.MdiChildren)//循环MDI中的所有子窗体04  {05  if (formChild.Name == form.Name)//若该子窗体已被打开06      {07  formChild.Activate();//激活该窗体08  formChild.StartPosition = FormStartPosition.CenterParent;09  formChild.WindowState = FormWindowState.Normal;10  isOpened = true;//设置子窗体的打开标记为true11  formChild.Dispose();//销毁formChild实例12  break;13      }14  }15  if (!isOpened)//若该子窗体未打开,则显示该子窗体16  {17  formChild.MdiParent = this;18  formChild.Show();19  }
0