winform父窗体实现多个子窗体只能显示一个
一、前言
当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服。所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决方法,供大家参考。
二、代码
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父窗体实现多个子窗体只能显示一个相关推荐
- 小米推送的那些坑 :有的手机能收到推送,有的收不到,通知栏只能显示一个。。。。。
前提:产品投放于国外市场,投放于Google Paly,开发在国内.运营只需要在小米控制台进行小米推送,不需要服务器配合. 遇到问题: ①(一开始对接问题) 一直不展示通知消息 ② 在通知栏只展示一条 ...
- html5控制两个重叠div的显示隐藏,2个重叠的div分别设置了hover但是只能显示一个div的hover效果?...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 无标题文档 #tt{ width:291px; height:218px; overflow:hidden; } #tt1{ width:291px; h ...
- 电脑锁定之后重新打开屏幕,双屏幕只能显示一个(娱乐向记录,技术向勿入)
场景:周末电脑锁屏,周内上班之后开启屏幕发现只有一个能打开了,另一个不能用了. 桌面右键屏幕分辨率,检测是可以检测到的. 奈何就是打不开. 一通百度之后. 有人说:拔了不亮的显示屏,重新插一下就好了( ...
- idea页面只能显示一个项目,idea使用教程——一个窗口中同时打开多个项目
idea使用教程--一个窗口中同时打开多个项目 相信很多小伙伴都有在使用"idea"软件,那么在其中我们怎么在一个窗口中同时打开多个项目呢?下面小编就来为大家具体介绍. 具体如下: ...
- idea页面只能显示一个项目_IntelliJ IDEA 同一个窗口打开多个项目
默认 IntelliJ IDEA 多个项目有多个窗口,并不像 eclipse 一样,具有一个工作空间多个项目.那么这种情况该怎么办呢? 举例如下 如下图的 3 个项目,具有 3 个不同的窗口. 为了管 ...
- c# winform以及wpf下子pannel或paneldock里切换多个子窗体的方法
常常遇到在一个主界面,通过不同按键或者菜单,让主显示框加载不同窗口的功能,类似360杀毒软件或者常见的web里的不同频道的功能,将白了,就是只替换主体部分,其他不动. 一.先说winfrom的,比较简 ...
- c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...
C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...
- C# 如何重复调用父窗体中的子窗体
当我们在父窗体中点击一个按钮,会出现一个子窗体,又或者当点击另一个标签,也会弹出与之前相同的子窗体.要保证两次点击弹出的是一个窗体,要使用以下的方法,注意弹出窗体的时候不能用ShowDialog方法, ...
- C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // // 平铺 base.LayoutMdi(MdiLayou ...
最新文章
- DCGAN in Tensorflow生成动漫人物
- 美国科学院公布新一批院士名单,中科院曹晓风及五名华裔教授当选
- 西南大学校园GIS平台
- 1-1:学习shell之shell是什么
- 这些互联网巨头,明年可能会纷纷杀入AI芯片战局
- C/C++ 指针小结——指针的概念和如何使用指针
- 获取列表的最后一个元素
- 【转】Windows的多线程编程,C/C++
- 无线覆盖技术的重要性
- android清理软件评测,四大垃圾清理软件横向评测
- 怦然心动(Flipped)-9
- 游戏因为音效而变得触动人心
- 华三交换机升级的ipe文件_H3C 交换机升级说明
- tolower()函数
- 转微信小程序行业解析
- python 计算离散点的微分和积分(超详细)
- 调用MapReduce对文件各个单词出现的次数进行统计
- Java基础案例 | 第二弹(持续更新...xdm冲啊)
- pdf的创建时间怎么修改?
- 在两个高程点之间如何生成加密点_等高线加密高程点