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 }
C#判断窗体是否打开,并获取聚焦、未打开则新建一个子窗体的更多相关文章
- 如何实现MDI窗体不重复打开同一个子窗体?
使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性——MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以 ...
- Java获取系统默认浏览器打开链接
package com.ylx.test; public class DesktopBrowers { public static void main(String[] args) { // 判断当前 ...
- JQuery判断radio是否选中,获取选中值
本文摘自:http://www.cnblogs.com/xcj1989/archive/2011/06/29/JQUERY_RADIO.html /*----------------------- ...
- 判断页面是在pc端打开还是在移动端打开
在项目开发中会遇到在不同的设备中打开页面是不同的,比如: 我在手机中打开一个网站和pc打开一个网站,页面是不同的 具体实施如下 //判断打开网站的终端 var ua = window.navigato ...
- JQuery判断radio是否选中并获取选中值的示例代码
这篇文章主要介绍了JQuery判断radio是否选中并获取选中值的方法,代码很简单,但很实用,需要的朋友可以参考下 其他对radio操作功能,以后在添加.直接上代码,别忘记引用JQuery包 ? 1 ...
- python+selenium调用chrome打开网址获取内容
目录 1,安装selenium和配置chromedriver 2,调用chromedriver打开网页获取网页内容 3,模拟登陆百度云 附录(webdriver版本兼容列表) 通过selenium库, ...
- 网摘-获取屏幕dc并且将其画面显示在窗体中
获取屏幕dc并且将其画面显示在窗体中 HWND hWnd = ::GetDesktopWindow();//获得屏幕的HWND. HDC hScreenDC = ::GetDC(hWnd); // ...
- PyQt5学习笔记-从主窗体打开一个子窗体
PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...
- MyWebViewDemo【封装Webview常用配置和选择文件、打开相机、录音、打开本地相册的用法】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装webview的常用配置和选择文件.打开相机.录音.打开本地相册的用法.[如果想要使用简单的预览功能,可以参考<MyBri ...
- python 打开浏览器的方法 Python打开默认浏览器
一.python 打开浏览器的方法: . startfile方法(打开指定浏览器) import os os.startfile("C:\Program Files\internet exp ...
随机推荐
- Canvas:路径
路径的概念 路径是从起始点到结束点之间的连线.个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形.直线.曲线.圆形等各种几何图形:非线性图形包括图象.文本.像素.线性图形中又分为路径和非路 ...
- js高德地图添加点Marker,添加线段Polyline,添加一个区域Polygon(面)
高德地图JS API 实例 亲测可用 参考网站=> 阿里云数据可视化平台(下载json用的):http://datav.aliyun.com/portal/school/atlas/area_ ...
- vue数组传值到后端
const arrays= ["zhangsan","lisi"] 请求方式:GET vue前端: getDetailList({arrays:arrays}) ...
- 在老项目中单独引入vue.js,使用自定义指令
传统项目,做一个表格渲染,然而数据过多,传统方式费时费力,便引入vue和elelment ui,由于表格需要渲染的数据过多一个表格上千条,导致切换tab更新表格时缓慢,体验太差,于是做了自定义指令, ...
- java开发细节
Java开发细节 Java源文件以.java 为扩展名.源文件的基本组成部分为类(class),如本类中的Hello类 Java应用程序的执行入口是main()方法.它有固定的书写格式: public ...
- function 和mapped function的区别
1 --在函数定义上使用mapped前缀将此函数标记为自动映射到集合上.这意味着,如果将集合作为函数的第一个参数,则该函数将在集合的元素上自动重复调用.这允许您定义脚本化函数,这些函数的行为方式与映射 ...
- input 模糊搜索下拉框
html <input type="text" class="layui-input blockInput" id="taskExpressio ...
- Linux 中设置静态的IP
Topic (What i going to write) Setting the static Ip address in linux Main Information Firstly use CD ...
- 备份docker mysql数据库
1.查看容器 docker ps 2.进入容器 docker exec -it 容器id /bin/bash 3.备份数据 mysqldump 数据库名称 -uroot -p >/root/** ...
- JavaScript 时间的操作
1. 标准日期格式 转 时间戳 第一步,设置一个标准日期,获取这个日期格式的时间戳 let timeStr = "2020-08-10 12:34:45"; let newTime ...