主题:C#中防止重复打开MDI子窗体
东东1204
[专家分:270] 发布于 2006-09-05 16:13:00
C#中防止重复打开MDI子窗体?
回复列表 (共5个回复)
沙发
yuhua [专家分:1730] 发布于 2006-09-05 20:14:00
方法很多
单件模式
变量控制
板凳
东东1204 [专家分:270] 发布于 2006-09-07 12:41:00
变量控制怎么做?举个例子来看看啊!
3 楼
purana [专家分:440] 发布于 2006-09-09 10:59:00
private bool CheckChildFrmExits(string ChildFrmName)
{
foreach(Form ChildFrm in this.MdiChildren)
{
if(ChildFrm.Name == ChildFrmName)
{
if(ChildFrm.WindowState == FormWindowState.Minimized)
ChildFrm.WindowState = FormWindowState.Normal ;
ChildFrm.Activate();
return true;
}
}
return false;
}
4 楼
q123ty [专家分:0] 发布于 2006-09-10 10:23:00
楼上的可不可以把程序简单的注释下啊,看的不是很懂
5 楼
超级赛雅人 [专家分:20] 发布于 2006-09-12 14:26:00
楼上的这位网友好象没有关闭重复的MDI子窗体,反而激活了重名的子窗体。我觉得应该改成这样才更合适:
private bool CheckChildFrmExits(string ChildFrmName)
{
int num=0;
foreach(Form ChildFrm in this.MdiChildren)
{
if(ChildFrm.Name == ChildFrmName)
num++;
}
if(num<=1) return false;
foreach(Form ChildFrm in this.MdiChildren)
{
if(num>1)
ChildFrm.Dispose();
else
return true;
}
}
我来回复