不能打开已经打开的子窗体,并且始终只能打开一个子窗体
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
下面这一段是博客园的:
//该功能是不能打开同一个子窗体,其实我感觉这样做是合理的,可是我的老师总是给我加了个难度
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
相关文章推荐
- WinForm程序或WPF程序只能打开一个子窗体 解决窗口关闭不能再打开的BUG
- C#主窗体控件打开一个子窗体,子窗体关闭后,再重新打开子窗体出现:无法访问已经释放的对象
- 解决双系统问题,先安装win7,再安装ubuntu,发现ubuntu不能识别检测已经安装的win7,并且只能看到一整块硬盘的问题
- 利用泛型对winform传值,并且只能打开一个同样的窗体
- winform不能用窗体设计器打开,只能用代码编辑器打开
- 查询一个子窗体是否已经打开
- C#主窗体控件打开一个子窗体,子窗体关闭后,再重新打开子窗体出现:无法访问已经释放的对象
- C#多次单击按钮只能打开一次子窗体及创建MDI子窗体
- 只打开一个子窗体
- MDI窗体,子窗体在父窗体中最大化,如果子窗体已经打开则显示,不重复打开窗体
- JQuery:在input中只能输入数字,并且不能复制粘贴,不能切换输入法
- 【中科大洋笔试题】定义一个不能被继承的类,并且只能实例化3个对象。
- 避免程序重复启动,并且将已经启动的程序显示到窗体最前段。
- c#实现关闭当前窗体并打开另一个已经创建的窗体
- C# 窗体只能打开一次
- office2007只能打开不能编辑
- 【原创】进程操作:程序只能由特定进程打开,不能单独双击运行的比较笨的解决办法
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- C#中,把激活已经打开的窗体的代码封装成方法来用
- 在Office应用中打开WPF窗体并且让子窗体显示在Office应用上