使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性——MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以通过判断被打开子窗体的名称来禁止子窗体被重复打开。
例如,下面的代码实现在MDI框架窗体中不重复打开同一个子窗体:
01 FormChild formChild = new FormChild();//实例化FormChild子窗体 02 bool isOpened = false;//定义子窗体打开标记,默认值为false 03 foreach (Form form in this.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;//设置子窗体的打开标记为true 11 formChild.Dispose();//销毁formChild实例 12 break; 13 } 14 } 15 if (!isOpened)//若该子窗体未打开,则显示该子窗体 16 { 17 formChild.MdiParent = this; 18 formChild.Show(); 19 }
本文来自明日科技出版的《零基础学C#》,转载请注明出处!!!