C# Winform内嵌窗体(在主窗体上显示子窗体)

        在开发Winform项目中,经常会要切换不同的窗体。通常程序都有一个主窗体,在切换窗体时往往需要关闭其他子窗体,这个实例就来介绍MDI主窗体内嵌子窗体的实现方法。

MDI主窗体要设置一个比较重要的属性,IsMdiContainer=true。子窗体的 formChild.MdiParent设置成为主窗体。

        public MainForm()
        {
            InitializeComponent();
            //设置改窗体为MDI容器(多文档界面容器),可嵌入多个子窗体
            this.IsMdiContainer = true;
        }

        /// <summary>
        /// 通过子窗体名,打开子窗体
        /// </summary>
        /// <param name="childFromName"></param>
        /// <returns></returns>
        private void OpenChildFrom(string childFromName)
        {
            bool bHave = false;
            //子窗体已存在 则打开
            foreach (Form formChild in this.MdiChildren)
            {
                if (formChild.Name == childFromName)
                {
                    formChild.MdiParent = this;
                    formChild.Activate();
                    formChild.StartPosition = FormStartPosition.Manual;
                    //填满主窗体空间
                    formChild.Dock= DockStyle.Fill;
                    formChild.Show();
                    bHave = true;
                }
                else
                {
                    formChild.Hide();
                }
            }
            //子窗体不存在 创建并打开
            if (bHave == false)
            {
                Form formChild = InitializeFormByName(childFromName);
                if (formChild != null)
                {
                    formChild.MdiParent = this;
                    formChild.StartPosition = FormStartPosition.Manual;
                    //填满主窗体空间
                    formChild.Dock = DockStyle.Fill;
                    formChild.Show();
                }
            }
        }

程序实例链接:https://download.csdn.net/download/lvxingzhe3/89422924

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/700525.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】创建harbor私有仓库及使用aliyun个人仓库

1.安装docker #删除已有dockersystemctl stop docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine #安装docker yum install -y docker-ce-20.10.1…

NLP中的Tokenizer分词器的概念与实现

Tokenizer 在开始学习 NLP 相关知识之前&#xff0c;先要学习一个叫 Tokenizer 的概念&#xff0c;这可谓是所有 NLP 模型开始训练前需要做的一个步骤&#xff0c;那么 Tokenizer 是什么&#xff1f; 在计算机处理一行语句的时候&#xff0c;我们给其输入一个 String&#xff…

Android Media Framework(五)Tunnel Mode

本篇将聚焦Android Tunnel Mode&#xff0c;详细解析组件之间隧道连接过程、数据传递过程、组件销毁过程。通过阅读本篇内容&#xff0c;我们应能对tunneled组件的连接过程和buffer分配过程有所了解。 1、Tunnel Mode介绍 IL Spec详细描述了Tunnel Component的实现方式&#x…

【ArcGISProSDK】OpenItemDialog打开文件对话框

打开单个文件 效果 代码 public async void OpenFunction() {// 获取默认数据库var gdbPath Project.Current.DefaultGeodatabasePath;OpenItemDialog openItemDialog new OpenItemDialog() { Title "打开要素文件",InitialLocation gdbPath,Filter ItemFilte…

Linux 性能优化实战

文章目录 33 | 关于 Linux 网络&#xff0c;你必须知道这些&#xff08;上&#xff09;设计高并发架构需要考虑什么&#xff1f;如何理解分布式&#xff1f;如何理解云计算&#xff1f;如何理解微服务&#xff1f;TCP/IP网络分层模型是什么&#xff1f;每一层的功能是什么&…

矩阵练习2

48.旋转图像 规律&#xff1a; 对于矩阵中第 i行的第 j 个元素&#xff0c;在旋转后&#xff0c;它出现在倒数第i 列的第 j 个位置。 matrix[col][n−row−1]matrix[row][col] 可以使用辅助数组&#xff0c;如果不想使用额外的内存&#xff0c;可以用一个临时变量 。 还可以通…

STM32项目分享:智能窗帘系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…

基于VLC可见光通信的室内光通信信道信噪比分析matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................... % 接收功率计算Pr …

使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析

使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析 本文将介绍如何使用pyspark以及scala实现的spark分析出租车GPS数据&#xff0c;具体来说&#xff0c;我们将计算每个北京城区内的车辆位置点数&#xff0c;以及统计出租车的数量。我们将使用两…

Vue 3与ESLint、Prettier:构建规范化的前端开发环境

title: Vue 3与ESLint、Prettier&#xff1a;构建规范化的前端开发环境 date: 2024/6/11 updated: 2024/6/11 publisher: cmdragon excerpt: 这篇文章介绍了如何在Vue 3项目中配置ESLint和Prettier以统一代码风格&#xff0c;实现代码规范性与可读性的提升。通过设置规则、解…

49、Flink 的数据源的 SplitReader API 详解

SplitReader API a&#xff09;概述 核心的 SourceReader API 是完全异步的&#xff0c;但实际上&#xff0c;大多数 Sources 都会使用阻塞的操作&#xff0c;例如客户端&#xff08;如 KafkaConsumer&#xff09;的 poll() 阻塞调用&#xff0c;或者分布式文件系统&#xff…

商业智能(BI)期末复习

商业智能&#xff08;BI&#xff09;期末复习 商业智能&#xff08;BI&#xff09;期末复习 2024/06/17 13:30-15:00 1.工作簿包含工作表 2.tableau是一款轻型BI工具 3.敏捷BI成本比较低 因为可以不建立数据仓库 4.敏捷BI的能带来更高的质量系统 是在用户监督下建立起来的 …

Python易错点总结

目录 多分支选择结构 嵌套选择 用match模式识别 match与if的对比 案例&#xff1a;闰年判断 三角形的判断 用whlie循环 高斯求和 死循环 用for循环 ​编辑continue​编辑 whlie与else结合 pass 序列 列表&#xff08;有序&#xff09; 元组&#xff08;有序&…

高仿imtoken钱包源码/获取助记词/获取私钥/自动归集

高仿imtoken钱包/获取助记词/获取私钥/自动归集 带双端&#xff0c;无纯源码 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89379118 更多资源下载&#xff1a;关注我。

【免杀】C2远控-APC注入-进程镂空

目录 进程镂空&傀儡进程&#xff08;主要过内存扫描&#xff09;代码 傀儡进程演示如何上线上线演示 APC注入&进程欺骗&#xff08;主要过内存扫描&#xff09;同步调用与异步调用代码演示 进程镂空&傀儡进程&#xff08;主要过内存扫描&#xff09; 进程镂空(Pro…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…

记录大三上学期大数据课程设计:基于Hadoop和Spark的中文手写数字实时识别系统

我整理好了两个百度网盘链接&#xff0c;一个是模型文档和数据&#xff0c;一个是镜像&#xff0c;下载、导入虚拟机即可运行。 github地址&#xff1a;Li-Jihong/big-data: 用来记录大三上学期大数据课程设计&#xff1a;基于Hadoop和Spark的中文手写数字实时识别系统 (githu…

服务器如何远程桌面连接不上,服务器远程桌面连接不上解决办法

服务器远程桌面连接不上&#xff0c;是IT运维中常见的挑战之一。针对这一问题&#xff0c;专业的解决方法通常涉及以下几个方面的排查与操作&#xff1a; 首先&#xff0c;我们需要检查网络连接是否正常。远程桌面连接依赖于稳定的网络连接&#xff0c;因此&#xff0c;确认服务…

Rocky Linux 9.4 部署Zabbix 7.0

文章目录 Zabbix基本概念zabbix介绍zabbix特性zabbix结构 安装Zabbix主机名配置配置Zabbix-Server(1)禁用EPEL提供的Zabbix软件包(2)安装Zabbix Server、Web前端、Agent(3)创建初始数据库(4)Zabbix server配置数据库(5)为Zabbix前端配置PHP(6)启动Zabbix server和agent进程(7)放…

【JS重点知识05】正则表达式

目录 一&#xff1a;正则表达式简介 1 什么是正则表达式 2 正则表达式作用 二&#xff1a;语法格式&#xff1a; 1 定义正则表达式 2 检索、判断是否匹配 &#xff08;1&#xff09;test()方法 &#xff08;2&#xff09;exec()方法 三&#xff1a;元字符 普通字符&a…