首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
C# 多窗体显示(MDI)
📅 2026/10/31 10:41:36
✍️ 爱科研究院
👁 阅读 3,247
一、winform中显示子窗体传统方式1.1 示例代码假如主窗体为MainForm,有三个子窗体分别是Form1Form2Form3public partial class MainForm : Form { public MainForm() { InitializeComponent(); } Form1 form1 new Form1(); //子窗体1 Form2 form2 new Form2(); //子窗体2 Form3 form3 new Form3(); //子窗体3 private void MainForm_Load(object sender, EventArgs e) //主窗体加载事件 { ShowForm(form3); //将窗体加载至panle控件中 ShowForm(form2); ShowForm(form1); } private void ShowForm(Form frm) //显示子窗体 { if (!splitContainer1.Panel2.Controls.Contains(frm)) { frm.TopLevel false; //窗体是否为顶级窗体 frm.FormBorderStyle FormBorderStyle.None; //设置窗体无边框 // frm.Dock DockStyle.Fill; //设置填充方式为充满 frm.Parent this.splitContainer1.Panel2; //设置父窗体 随业务逻辑变动 splitContainer1.Panel2.Controls.Add(frm); frm.Show(); //打开窗体 frm.BringToFront(); //将控件显示最前 } else { frm.BringToFront(); } } private void btnShowForm1_Click(object sender, EventArgs e) //切换子窗体1 { ShowForm(form1); BackColorSet(((System.Windows.Forms.Button)sender).Text); } private void btnShowForm2_Click(object sender, EventArgs e) //切换子窗体2 { ShowForm(form2); BackColorSet(((System.Windows.Forms.Button)sender).Text); } private void btnShowForm3_Click(object sender, EventArgs e) //切换子窗体3 { ShowForm(form3); BackColorSet(((System.Windows.Forms.Button)sender).Text); } private void BackColorSet(string item) //设置按钮背景色 { //①现将所有的按钮统一赋值为同一种颜色 this.btnShowForm1.BackColor Color.Teal; this.btnShowForm2.BackColor Color.Teal; this.btnShowForm3.BackColor Color.Teal; //②根据传入的参数判断当前是哪个按钮按下 switch (item) { case 显示子窗体1: this.btnShowForm1.BackColor Color.Red; break; case 显示子窗体2: this.btnShowForm2.BackColor Color.Red; break; case 显示子窗体3: this.btnShowForm3.BackColor Color.Red; break; default: break; } } }1.2 运行结果二、winform中显示用户控件推荐方式2.1 示例代码假如主窗体为MainForm,有三个子用户控件分别是UserControl1UserControl2UserControl3namespace WinFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public UserControl1 f1; public UserControl2 f2; public UserControl3 f3; private void Form1_Load(object sender, EventArgs e) { f1 new UserControl1(); f2 new UserControl2(); f3 new UserControl3(); } private void button1_Click(object sender, EventArgs e) { f1.Dock DockStyle.Fill; f1.Show(); splitContainer1.Panel2.Controls.Clear(); splitContainer1.Panel2.Controls.Add(f1); } private void button2_Click(object sender, EventArgs e) { f2.Show(); splitContainer1.Panel2.Controls.Clear(); splitContainer1.Panel2.Controls.Add(f2); } private void button3_Click(object sender, EventArgs e) { f3.Show(); splitContainer1.Panel2.Controls.Clear(); splitContainer1.Panel2.Controls.Add(f3); } } }2.2 运行结果
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/31 10:41:36
WeChatMsg 使用指南:免费把微信聊天记录导出为 HTML、Word、CSV 并生成年度报告
2026/10/31 10:41:36
Docker+Jenkins+Git+Python自动化测试持续集成,CI/CD
2026/10/31 10:41:36
PhotoView 搬上 Android TV:遥控器导航与焦点框改造
2026/10/31 11:26:47
电梯智能群控系统:跨品牌调度与机器人集成技术解析
2026/10/31 11:26:47
MySQL教务系统实战:权限隔离、事务回滚与双哈希校验工程包
2026/10/31 11:26:47
Windows到Linux的OGG 12.2.0.2部署与同步避坑
2026/10/31 11:26:47
鸿蒙4.0画中画功能开发实战指南
2026/10/31 11:26:46
Windows到Linux OGG异构同步:日志权限与检查点排错
2026/10/31 11:21:46
医疗小程序垂直越权漏洞分析与防护实践
2026/10/31 0:00:18
猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包
2026/10/31 0:00:18
HDU2017多校标程复现:算法竞赛工程化真题沙盒
2026/10/31 0:00:18
Codex Sandbox 隔离环境拆解:AI Agent 的临时实验室如何运作
2026/10/31 0:57:03
全国计算机二级C语言真题PDF高效刷题指南
2026/10/31 0:56:56
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/30 21:48:31
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/30 3:44:27
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/30 3:44:25
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/30 3:44:29
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)