CMDI窗体避免重复打开子窗体的问题

CMDI窗体避免重复打开子窗体的问题在做 winform 程序的时候 需要用到 MDI 窗体 在网上看了一些避免子窗体重复打开的问题 现在我有一个 MDI 窗体 formfather 以及两个子窗体 form1 和 form2 在父窗体上弄两个按钮 点击按钮 1 的时候显示 form1 点击按钮 2 的时候显示 form2 再一次点击的时候显示 form1 而不是一个新的 form1 下面是我的代码 privatevoidt Cl

在做winform程序的时候,需要用到MDI窗体,在网上看了一些避免子窗体重复打开的问题。

private void toolStripButton1_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); bool isOpened = false;//定义子窗体打开标记,默认值为false foreach (Form f in this.MdiChildren)//循环MDI中的所有子窗体 { if (f1.Name == f.Name)//若该子窗体已被打开 { f.Activate();//激活该窗体 isOpened = true;//设置子窗体的打开标记为true f1.Dispose();//销毁formChild实例 break; } } if (!isOpened)//若该子窗体未打开,则显示该子窗体 { f1.MdiParent = this; f1.FormBorderStyle = FormBorderStyle.None;//设置子窗体无边框 f1.Dock = DockStyle.Fill;//设置子窗体填满MDI窗体 f1.Show(); } private void toolStripButton2_Click(object sender, EventArgs e) { Form2 df = new Form2 (); bool isOpened = false;//定义子窗体打开标记,默认值为false foreach (Form f in this.MdiChildren)//循环MDI中的所有子窗体 { if (df.Name == f.Name)//若该子窗体已被打开 { f.Activate();//激活该窗体 isOpened = true;//设置子窗体的打开标记为true df.Dispose();//销毁formChild实例 break; } } if (!isOpened)//若该子窗体未打开,则显示该子窗体 { df.MdiParent = this; df.FormBorderStyle = FormBorderStyle.None; df.Dock = DockStyle.Fill; df.Show(); } } 

看别人的代码在代码块写激活窗体时用的是f1.Activate,这样是无法成功再次激活得窗体的,后来想了下,可能因为f1是new的窗体,而我们要打开的应该是已经是已经存在的f1窗体,即是我们foreach到的f窗体才是。

自己的想法,不知道对不对,记录在此供自己以后查看,也希望大家指正

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232025.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql中kill掉所有锁表的进程

    mysql中kill掉所有锁表的进程很多时候由于异常或程序错误会导致个别进程占用大量系统资源,需要结束这些进程,通常可以使用以下命令Kill进程:mysql中kill掉所有锁表的进程2009-05-1214:03转载请保留如下作者信息作者:jesse博客:http://hi.baidu.com/leechl3点钟刚睡下,4点多,同事打电话告诉我用户数据库挂

    2022年8月23日
    8
  • 域名怎样实现自动跳转网页_域名

    域名怎样实现自动跳转网页_域名自动转向(Auto-Redirecting),也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转向往往意味着浏览器收到的页面具有自动将访问用户送至其它页面的功能。

    2022年10月4日
    2
  • oracle分页 慢,oracle分页查询缓慢的情况

    oracle分页 慢,oracle分页查询缓慢的情况这是延续很久的问题了项目使用的 Oracle 一百多万数据 分页显示 10 条 高配服务器显示首页都要 10 秒以上 配置差的服务器要好几十秒 实在无法忍受 还不如 mysql 的速度前前后后多次想对这个进行优化 但是好几次都是研究了半天没有一点进展昨天和今天通过 sqldeveloper 不要笑话我不用 PL SQL 的解释计划 看到查询使用了全表扫描之前一直认为是使用了 like 的原因在我自己的知识库里 我只

    2025年11月24日
    4
  • redission设置过期时间_设置redis过期时间

    redission设置过期时间_设置redis过期时间需提前准备redis包:ServiceStack.Interfaces ServiceStack.Redis.Core StackExchange.Redis直接上代码:RedisClientclient=newRedisClient(“127.0.0.1”,6379);client.FlushAll();//1.key//2.value//3.过期时间

    2022年9月26日
    2
  • dga 分析_tcga数据库分析

    dga 分析_tcga数据库分析02n-0iy6gn3ozzwmyu.7i43n9qil1g1z2-.com0e527eaf_5ec5_4623_9fe9_e459583acd72.com0fmgm1cuu7h1279dghgka0ltg.com0gqo9jx0ir0rjy4b.com0hm4mqw9hoe3gvajwi.com-0j2zkzul4p5v8zo4d0m.127f5zlwuhq7yy2qufp6l.com…

    2025年8月31日
    3
  • SAXReader从输入流中读取XML文件

    SAXReader从输入流中读取XML文件Mapmap newHashMap nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 从 request 中取得输入流 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp InputStreami request getInputStre nbsp nbsp nbsp 读取输入流 nbsp nbsp nbsp nbsp nbsp nbsp nbsp SAXReaderrea newSAXReader nbsp nbsp nbsp nbsp nbsp nbsp 生成 document 实体

    2025年11月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号