C#限制MDI子窗体重复打开——C#判断窗体是否已经打开 多种方法 2012-06-26更新
private bool HaveOpened(Form 父窗体, string 子窗体Name)
{
//查看窗口是否已经被打开
bool bReturn = true;
for (int i = 0; i < 父窗体.MdiChildren.Length; i++)
{
if (父窗体.MdiChildren[i].Name == 子窗体Name)
{
父窗体.MdiChildren[i].BringToFront();
bReturn = false;
break;
}
}
return bReturn;
}
打开窗体时调用上述方法:
Form1 f1=new Form();
if (HaveOpened(父窗体, "子窗体Name"))
{
f1.MdiParent = 父窗体;
f1.Show();
}
通过窗口名判断是否已经打开窗口,如此做的好处就是一个窗体通过不同的Name打开多个这个窗口
比如说不同的模块打开不同的Mdi父窗体.但相同的Name只能打开一个
/// <summary> /// 判断是否打开Mdi的窗口,如打开则得到窗口 /// </summary> /// <param name="asFormName"></param> /// <returns></returns> public Form CheckMdiFormIsOpen(string asFormName) { Form form = null; foreach (Form frm in Application.OpenForms) { if (frm.Name == asFormName) { form = frm; break; } } return form; }
private bool ContainMDIChild(string childTypeString) { Form form = null; foreach (Form form2 in base.MdiChildren) { if (form2.GetType().ToString() == childTypeString) { form = form2; break; } } if (form != null) { //form.TopMost = true; form.Show(); form.Focus(); return true; } return false; } private bool ContainChild(string childTypeString) { Form form = null; foreach (Form form2 in Application.OpenForms) { if (form2.GetType().ToString() == childTypeString) { form = form2; break; } } if (form != null) { //form.TopMost = true; form.Show(); form.Focus(); return true; } return false; }
本文来自博客园,作者:jevan,转载请注明原文链接:https://www.cnblogs.com/DoNetCShap/archive/2012/03/05/2380091.html
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端