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

本文介绍了一种方法,即通过检查MDI窗体的MdiChildren属性来避免重复打开相同的子窗体。通过比较子窗体名称,如果已存在相同名称的子窗体,则直接激活它;否则创建并显示新的子窗体。

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

例如,下面的代码实现在MDI框架窗体中不重复打开同一个子窗体:

01  FormChildformChild = newFormChild();//实例化FormChild子窗体

02  boolisOpened = false;//定义子窗体打开标记,默认值为false

03  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;//设置子窗体的打开标记为true

11  formChild.Dispose();//销毁formChild实例

12  break;

13      }

14  }

15  if (!isOpened)//若该子窗体未打开,则显示该子窗体

16  {

17  formChild.MdiParent = this;

18  formChild.Show();

19  }

 

 

标签:

 

本文来自明日科技出版的《零基础学C#,转载请注明出处!!!

转载于:https://www.cnblogs.com/mrxy/p/8117853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值