在使用MDI子窗体时,如果仅仅是使用 from.show() 代码,那么我们单击几次菜单,就会打开几个同样的子窗体。可以用这段代码防止这种情况。

首先添加一个函数,这个函数用于检测指定的子窗体是否已经打开,如果打开则激活这个子窗体,否则返回false值

private bool ShowChildrenForm(string p_ChildrenFormText)
{     int i;     //依次检测当前窗体的子窗体     for (i = 0; i < this.MdiChildren.Length; i++)      {         //判断当前子窗体的Text属性值是否与传入的字符串值相同if (this.MdiChildren[i].Text == p_ChildrenFormText) {             //如果值相同则表示此子窗体为想要调用的子窗体,激活此子窗体并返回true值   this.MdiChildren[i].Activate();             return true;         }     }     //如果没有相同的值则表示要调用的子窗体还没有被打开,返回false值     return false;}

然后在调用子窗体的方法中写入如下代码

if ( ! ShowChildrenForm("子窗体的Text属性值") ) 
{       
  Form newForm = new Form();  
  newForm.MdiParent = this;        
  newForm.Show();

}     
这样在调用子窗体时,会判断是否已经打开此窗体的相同实例,如果是则激活打开的窗体,不是的话才会再打开一个新的实例

转载于:https://www.cnblogs.com/zyfIda/p/6264321.html

c# winform 防止窗体多次打开相关推荐

  1. c#点击按钮调出另一个窗体_在类库或winform项目中打开另一个winform项目窗体的方法...

    本文实例讲述了在类库或winform项目中打开另一个winform项目窗体的方法.分享给大家供大家参考.具体如下: 一.问题: 假设类库或winform项目为A,另一个winform项目为B.那麽在A ...

  2. Winform程序窗体间的跳转

    关于Winform程序窗体间的跳转问题: 对于编程新手来讲,winform程序窗体间的跳转,经常会出现一些异常,或是弹出重复的窗口,如下图 下面给出一种方法,可以很好的避免掉这样的问题: 首先,在主程 ...

  3. WinForm开发,窗体显示和窗体传值相关知识总结

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...

  4. winform php 交互,WinForm开发,窗体显示和窗体传值

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDial ...

  5. C#Winform中窗体的美化

    前言 机房合作项目正在最近如火如荼的进行着,一个好看的界面是一个项目的基础,所以该怎样让我们项目的界面更好的美化一下呢,组长把这个活交给了我,我也就义不容辞的接下来了,在美化的过程中发现这个世界真的好 ...

  6. C#MDI窗体避免重复打开子窗体的问题

    在做winform程序的时候,需要用到MDI窗体,在网上看了一些避免子窗体重复打开的问题. 现在我有一个MDI窗体formfather以及两个子窗体form1和form2. 在父窗体上弄两个按钮,点击 ...

  7. WinForm禁用窗体自带的关闭功能

    1.代码结构 2.实现代码 using System; using System.Windows.Forms;namespace WinFormForbidCloseDemo {/// <sum ...

  8. 多窗体、窗体传值、打开唯一窗体操作

    多窗体.窗体传值.打开唯一窗体操作 一.打开多子窗口 在控件中实例化要打开的窗体,再调方法show 例:在按钮中打开f2窗体 form2 f2=new form2() f2.show() 二.构造函数 ...

  9. mfc 设置子窗口只打开一遍_MFC 判断子窗体是不是已经打开,避免重复创建

    MFC 判断子窗体是否已经打开,避免重复创建 在主窗体中,嵌入一个很多个子窗体,但是,每次只显示一个. 我的做法是,首先在主窗体头文件中定义子窗体对象,然后在单击显示按钮的时候,先判断子窗体是否已经被 ...

最新文章

  1. Oracle中的序列 sequence 用法
  2. Drools与Spring集成 登录测试
  3. knime实现python编写脚本
  4. Mysql:SQL语句:DML语句
  5. Python升级至2.7方法
  6. Git使用相关问题汇总
  7. 制造业数据分析存在哪些问题
  8. Elementui tabs组件内添加组件
  9. IMG镜像写盘工具physdiskwrite,用于MikroTik RouterOS的安装(Windows)
  10. iar arm 6.4 破解
  11. 基于python的新闻发布系统
  12. 动手深度学习 李沐 pytorch版本 基于Win10环境配置
  13. 计算机二级wpsoffice知识点,2017全国计算机等级考试一级WPS office考试大纲
  14. 中登TA、自TA、分TA
  15. pandas的自带数据集_Pandas教程:初学者入门必备,很全面,很详细!
  16. TAPD关联Jenkins
  17. iOS开发-简单图片背景替换(实现抠图效果)
  18. 编译低版本的binutils-2.16.1错误:ld.texinfo:1592: @itemx must follow @item
  19. 秋招春招,1v1面试技巧和常见问题
  20. 模拟时钟:时钟根据时间转动

热门文章

  1. 一个 SAP 开发工程师的成长史 - 关于信息素养和数字化资产的思考
  2. 工作5个月后,说下求职经验
  3. PLC远程上下载程序,一台物联网网关轻松解决
  4. 基于计算机网络(第八版)考试重点和复习指南
  5. John B. Conway《Functions of One Complex Variable Ⅱ》(约翰·B·康威《单复变函数Ⅱ》)中文目录
  6. 初次上课的感想!!!!
  7. 模块说和神经网络学说_2021考研312统考心理学知识:大脑皮层与脑功能学说
  8. HTML5期末大作业:明星个人网站设计——权志龙(10页) 含设计报告HTML+CSS++JavaScript 个人网站模板下载 大学生简单DW个人网页作品代码 个人网页制作 学生个人网页
  9. 电视剧也能训练人工智能?爱丁堡大学对此进行了实验 | 研究
  10. ubuntu 14.04.5 编译Android 4.4.4 r1源码(最新)