如何实现MDI窗体不重复打开同一个子窗体?
使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性——MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以通过判断被打开子窗体的名称来禁止子窗体被重复打开。
例如,下面的代码实现在MDI框架窗体中不重复打开同一个子窗体:
FormChild formChild = new FormChild();//实例化FormChild子窗体
bool isOpened = false;//定义子窗体打开标记,默认值为false
foreach (Form form in this.MdiChildren)//循环MDI中的所有子窗体
{
if (formChild.Name == form.Name)//若该子窗体已被打开
{
formChild.Activate();//激活该窗体
formChild.StartPosition = FormStartPosition.CenterParent;
formChild.WindowState = FormWindowState.Normal;
isOpened = true;//设置子窗体的打开标记为true
formChild.Dispose();//销毁formChild实例
break;
}
}
if (!isOpened)//若该子窗体未打开,则显示该子窗体
{
formChild.MdiParent = this;
formChild.Show();
}
本文来自明日科技出版的《零基础学C#》,转载请注明出处!!!
如何实现MDI窗体不重复打开同一个子窗体?的更多相关文章
- PyQt5学习笔记-从主窗体打开一个子窗体
PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...
- WinForm连续点击按钮只打开一次窗体
许多朋友,学习C#时,制作WinForm小程序总会有一个问题,如果我们在父窗体设置的是点击一个按钮,打开一个子窗体,连续点击总会连续出现一样窗体,可是我们有时只想打开一次窗体,怎么办? 呵呵,我来方法 ...
- Winforn中怎样在窗体中打开另一个窗体
场景 在Winform的窗体A中打开另一个窗体B. 实现 //打开新的窗体 CurveCompare cc = new CurveCompare(); cc.Show(); 效果 以上代码的实现参照: ...
- C# winform判断窗体是否已打开
Form1 form; /// <summary> /// 开始检测 /// </summary> /// <param name="sender"& ...
- C# Winform 防止MDI子窗体重复打开
可以在MDI主窗体中添加以下方法. //防止打开多个窗体 private bool ShowChildrenForm(string p_ChildrenFormText) { int i; //依次检 ...
- 单件模式Singleton来控制窗体被重复或多次打开
本文转载:http://blog.csdn.net/a0700746/article/details/4473796 一般在百度搜一下,会出来一下内容,看来很好用.Singleton很方便的一个用处就 ...
- c# winform中预防窗体重复打开
当窗体以非模态形式打开的时候,有可能出现重复打开的情形,利用以下的代码可以预防重复打开! foreach (Form f in Application.OpenForms) { if (f.Nam ...
- WPF如何控制每个窗体确保只打开一次
在主窗体上点击菜单时,如果做到每个窗体不会被重复打开,如果打开了,可以将其重新获得焦点. 首先在主窗体中将菜单关联的窗体实例化. 第二步:将每个菜单对应窗体的closing事件重写.之所以要重写clo ...
- Delphi MDI程序 父窗体如何调用当前活动子窗体的函数/过程
一个MDI文本文件编辑器打开了N个子窗体子窗体的.pas文件有一些public的过程和函数我想在父窗体调用当前活动的子窗体函数我用Self.ActiveChildForm无法调用直接frmEdit.x ...
随机推荐
- Spark 基本概念
Application:用户编写的 Spark 应用程序,包含驱动程序(Driver),和分布在集群中多个节点上运行的 Executor 代码,在执行过程中由一个或多个作业组成 Driver(驱动程序 ...
- springCloud四:熔断器ribbon--Hystrix
注:前文概念部分摘抄自博客园 纯洁的微笑 熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩 ...
- C#匹配标签正则,获取标签的值
比如要获取: <color=#50cccc>头盔坐标:(-0.6, 1.0, 1.2)</color><color=#3d85c6>头盔方向(-0.2, 0.1, ...
- javascript 之作用域-06
作用域 作用域是指变量和函数可访问范围,他规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. 作用域有两种工作模式: 静态作用域 :又称为词法作用域,在编译阶就可以决定变量的引用,由程序定义 ...
- css 文字和子元素水平垂直居中
关于水平垂直居中,这是一个很简单的问题,但是很多时候,往往简单的东西,反而做不出来.这就是基础不扎实的缘故吧,我参照一些资料,总结了水平垂直居中的几种方法如下: 1 .文字水平垂直居中 这个比较简单, ...
- VUE 源码学习01 源码入口
VUE[version:2.4.1] Vue项目做了不少,最近在学习设计模式与Vue源码,记录一下自己的脚印!共勉!注:此处源码学习方式为先了解其大模块,从宏观再去到微观学习,以免一开始就研究细节然后 ...
- 2.动手实操Apache ZooKeeper
Tips 做一个终身学习的人! 日拱一卒,功不唐捐. 在本节中,我们将讲解如何下载并安装Apache ZooKeeper,以便我们可以直接开始使用ZooKeeper. 本部分旨在通过提供详细的安装和使 ...
- 我的Spring学习记录(五)
在我的Spring学习记录(四)中使用了注解的方式对前面三篇做了总结.而这次,使用了用户登录及注册来对于本人前面四篇做一个应用案例,希望通过这个来对于我们的Spring的使用有一定的了解. 1. 程序 ...
- springmvc+quartz简单实现定时调度
一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...
- MySQL锁学习之UPDATE
##==============================================================================## 学MySQL也蛮长时间了,可一直停 ...
