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();
foreach遍历式查找

 

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)    收藏  举报

导航

Live2D