您的位置:首页 > 其它

不能打开已经打开的子窗体,并且始终只能打开一个子窗体

2012-12-09 20:26 288 查看
在网上查了很多关于“winfrom中关闭所有打开子窗体代码” 的类似搜索,但似乎都是在说:“不能让其重复打开同一个子窗体的代码”,一开始没太留意,以为是不是自己搜索的关键词不对或者是不是就没有这种可能,后来某一天,又开始查这个问题,还是同样的搜索结果,这时我的想法是那我就看看这种做法能不能让我有借鉴的地方呢?于是我就打开看了一下(也是博客园的一篇文章,在此表示感谢),果然受益匪浅,从中找到了问题的关键所在。后来经过自己的整合,做出了符合老师要求的代码:

下面这一段是博客园的:

//该功能是不能打开同一个子窗体,其实我感觉这样做是合理的,可是我的老师总是给我加了个难度

foreach (Form childrenForm in this.MdiChildren)

{

//检测是不是当前子窗体名称

if (childrenForm.Name == "frm_zuzhijigoutu")

{

//是的话就是把他显示

childrenForm.Visible = true;

//并激活该窗体

childrenForm.Activate();

childrenForm.WindowState = FormWindowState.Maximized;

return;

}

}

经过自己的整理做出符合要求的代码,这样你始终只能打开一个子窗体,并且性能达到最优。

foreach (Form childrenForm in this.MdiChildren)

{

//检测是不是当前子窗体名称

if (childrenForm.Name == "frm_zuzhijigoutu")

{

//是的话就是把他显示

childrenForm.Visible = true;

//并激活该窗体

childrenForm.Activate();

childrenForm.WindowState = FormWindowState.Maximized;

return;

}

if (childrenForm.Name != "frm_zuzhijigoutu")

{

childrenForm.Dispose();

childrenForm.Close();

}

}

我这里有个释放资源时不知道释放的干部干净,若有问题,大家邮箱联系我:zhangzeguang88@sina.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐