本文共 614 字,大约阅读时间需要 2 分钟。
加入我们需要使某个菜单项在子窗口个数为0时enabled属性为false,有子窗体时为enabled.
我们可以在MdiChildActivate中 编写代码进行控制.
但是这里有一个问题,就是,当关闭最后一个子窗口的时候,他的.MdiChildrenLength == 1,也就是包括了刚刚关闭的那个子窗口,这个东西很不好弄,我反正是没有找到好的办法.
我想到了两种办法:
1、增加实例变量,以记录是否是初次打开
2、增加timer事件,在MdiChildActivate中触发该事件,设置时间可以较短,然后每次执行之后,在timer中把自身关闭。
我采用了第一种,不过没有自己定义,使用了form的tag属性,代码如下,不知道有没有更好的办法,愿大家教我。
private void FormImageFormatChangeTest_MdiChildActivate(object sender, EventArgs e) { if (this.Tag == null) { this.Tag = "NotFirst"; this.tsbConvert.Enabled = true; } else if (this.MdiChildren.Length == 1) { this.tsbConvert.Enabled = false; } else { this.tsbConvert.Enabled = true; }转载地址:http://lggji.baihongyu.com/