一、前言

当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服。所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决方法,供大家参考。

二、代码

1.父窗体

        /// <summary>/// 使父窗体每次只能显示一个子窗体/// </summary>/// <param name="子窗体名称"></param>private void ChangeChildren(Form frm){//判断是否第一次显示窗体if (this.MdiChildren.Length == 1){frm.Show();return;}foreach (Form children in this.MdiChildren){if (frm == children){//如果是现在就存在的子窗体就激活它children.Activate();break;}else{//如果窗体不一样就关闭了,在显示现在所需要的children.Close();frm.Show();break;}}

注意:如果用frm.ShowDialog()打开子窗体就无法操作父窗体

2.调用

在调用的时候会有不同的方法,在这里我用到了两个方法。

第一种:实例化子窗体,没有运用到单例模式。

 FrmRegister frmregister = new FrmRegister();//实现父窗体frmregister.MdiParent = this;ChangeChildren(frmregister);

第二种:运行单例模式。对这些子窗体实现单例,创建时只能出现一次。

 frmCancelCard frmcancelcard = frmCancelCard.GetInstance();frmcancelcard.MdiParent = this;ChangeChildren(frmcancelcard);

三、效果展示

参考:https://blog.csdn.net/weixin_34130269/article/details/85428571

原文自:https://blog.csdn.net/yyp0304Devin/article/details/94593978?ops_request_misc=&request_id=&biz_id=102&utm_term=winform%E6%89%93%E5%BC%80%E4%B8%A4%E7%88%B6%E7%AA%97%E4%BD%93&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-94593978.first_rank_v2_pc_rank_v29

winform父窗体实现多个子窗体只能显示一个相关推荐

  1. 小米推送的那些坑 :有的手机能收到推送,有的收不到,通知栏只能显示一个。。。。。

    前提:产品投放于国外市场,投放于Google Paly,开发在国内.运营只需要在小米控制台进行小米推送,不需要服务器配合. 遇到问题: ①(一开始对接问题) 一直不展示通知消息 ② 在通知栏只展示一条 ...

  2. html5控制两个重叠div的显示隐藏,2个重叠的div分别设置了hover但是只能显示一个div的hover效果?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 无标题文档 #tt{ width:291px; height:218px; overflow:hidden; } #tt1{ width:291px; h ...

  3. 电脑锁定之后重新打开屏幕,双屏幕只能显示一个(娱乐向记录,技术向勿入)

    场景:周末电脑锁屏,周内上班之后开启屏幕发现只有一个能打开了,另一个不能用了. 桌面右键屏幕分辨率,检测是可以检测到的. 奈何就是打不开. 一通百度之后. 有人说:拔了不亮的显示屏,重新插一下就好了( ...

  4. idea页面只能显示一个项目,idea使用教程——一个窗口中同时打开多个项目

    idea使用教程--一个窗口中同时打开多个项目 相信很多小伙伴都有在使用"idea"软件,那么在其中我们怎么在一个窗口中同时打开多个项目呢?下面小编就来为大家具体介绍. 具体如下: ...

  5. idea页面只能显示一个项目_IntelliJ IDEA 同一个窗口打开多个项目

    默认 IntelliJ IDEA 多个项目有多个窗口,并不像 eclipse 一样,具有一个工作空间多个项目.那么这种情况该怎么办呢? 举例如下 如下图的 3 个项目,具有 3 个不同的窗口. 为了管 ...

  6. c# winform以及wpf下子pannel或paneldock里切换多个子窗体的方法

    常常遇到在一个主界面,通过不同按键或者菜单,让主显示框加载不同窗口的功能,类似360杀毒软件或者常见的web里的不同频道的功能,将白了,就是只替换主体部分,其他不动. 一.先说winfrom的,比较简 ...

  7. c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...

    C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...

  8. C# 如何重复调用父窗体中的子窗体

    当我们在父窗体中点击一个按钮,会出现一个子窗体,又或者当点击另一个标签,也会弹出与之前相同的子窗体.要保证两次点击弹出的是一个窗体,要使用以下的方法,注意弹出窗体的时候不能用ShowDialog方法, ...

  9. C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列

    1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // //  平铺 base.LayoutMdi(MdiLayou ...

最新文章

  1. DCGAN in Tensorflow生成动漫人物
  2. 美国科学院公布新一批院士名单,中科院曹晓风及五名华裔教授当选
  3. 西南大学校园GIS平台
  4. 1-1:学习shell之shell是什么
  5. 这些互联网巨头,明年可能会纷纷杀入AI芯片战局
  6. C/C++ 指针小结——指针的概念和如何使用指针
  7. 获取列表的最后一个元素
  8. 【转】Windows的多线程编程,C/C++
  9. 无线覆盖技术的重要性
  10. android清理软件评测,四大垃圾清理软件横向评测
  11. 怦然心动(Flipped)-9
  12. 游戏因为音效而变得触动人心
  13. 华三交换机升级的ipe文件_H3C 交换机升级说明
  14. tolower()函数
  15. 转微信小程序行业解析
  16. python 计算离散点的微分和积分(超详细)
  17. 调用MapReduce对文件各个单词出现的次数进行统计
  18. Java基础案例 | 第二弹(持续更新...xdm冲啊)
  19. pdf的创建时间怎么修改?
  20. 在两个高程点之间如何生成加密点_等高线加密高程点

热门文章

  1. FPGA管脚分配需要考虑的因数
  2. mysql io模型_5种网络IO模型
  3. 如何让Moodle中所连结的flash等媒体事先呈现在画面上?
  4. 数组公式基本功修炼之数组扩充
  5. 借“样式”巧用Word自带的多级项目符号!
  6. 精确分割和筛选音频从长的音频中
  7. jittor和pytorch生成网络对比之bggan
  8. 较主流的消息队列的比较与选型
  9. java中的equals方法
  10. 了解的四大关键性概念