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 阅读(436) 评论(0) 收藏 举报
浙公网安备 33010602011771号