C#判断窗体是否打开,并获取聚焦、未打开则新建一个子窗体
在桌面程序开发会遇到的情况,托盘功能或者是小功能弹窗问题:
现有一个主窗体有子窗体 子窗体每个都可以新建其他窗体
问题:
新建子窗体时怎么判断子窗体是否打开?
若子窗体打开则置顶获取焦点。
若未打开则新建一个子窗体。
方法一:
foreach遍历式查找Form

1 foreach (Form frm in Application.OpenForms) 2 { 3 if (frm is Errors) 4 { 5 frm.Focus(); return; 6 } 7 } 8 Errors errorForm = new Errors(); 9 errorForm.Show();
1 foreach (Form frm in Application.OpenForms) 2 { 3 if (frm is Errors) 4 { 5 frm.Focus(); return; 6 } 7 } 8 Errors errorForm = new Errors(); 9 errorForm.Show();
===================================================================================
方法二:
指定form名查找
1 private void ErrorList_Clicked(object sender, EventArgs e) 2 { 3 // 显示所有的错误信息列表 4 FormCollection form_is_running = Application.OpenForms; 5 6 //typeof验证数据 7 string errorFormName = typeof(Errors).Name; 8 if (form_is_running[errorFormName] != null) 9 { 10 (form_is_running[errorFormName] as Form).Focus(); 11 } 12 else 13 { 14 Errors form_add = new Errors(); 15 form_add.Show(); 16 } 17 }
posted on 2023-02-20 11:35 8888888888888 阅读(342) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!