[C# Winform] MDI 多重视窗操作-如何避免重複开启

在开发 WinForm 程式时,有一种常见的设计版面是多重视窗(MDI)。

所谓的多重视窗(MDI)就是在原本的视窗内,再开出新的视窗,也称为子母视窗。

多重视窗是许多视窗程式会採用的版面配置,适合在大型的专案中会使用,例如 Visual Studio 也是使用多重视窗的配置。

以下会示範如何建立基本的多重视窗,以及如何限制视窗只能开启一次。

建立 MDI 父视窗

新增 MenuStrip 或 ToolStrip 工具列

在主要表单新增 MenuStrip 或是 ToolStrip。

这两种工具都适合放在主表单上面,当作开启子表单的按钮。
我所放的是 ToolStrip 工具列。

设定 IsMdiContainer 属性

将主要表单的「IsMdiContainer」设为”True”。

设定启动程式

将主要视窗设为主要启动程式。
我的主要视窗名称为 “FormMaster”。
开启 Program.cs 修改主要启动程式。

如何加入子视窗

首先新增一个子视窗,我命名为 “FormAccount”,在主视窗的 MenuStrip 或是 ToolStrip 增加按钮。
点击按钮写入以下程式码。

FormAccount childForm = new FormAccount();childForm.MdiParent = this;childForm.Show();

测试一下。

如何避免视窗重複开启

因为某些子视窗在画面中没有必要重複开启,而刚刚的程式码中若重複执行就会重複开启。
所以我们要加上以下程式码,在开启之前检查一下。

bool isFind = false;foreach (Form form in this.MdiChildren){if (form.Name == "FormAccount"){isFind = true;form.MdiParent = this;form.Focus();}}if (isFind == false){FormAccount childForm = new FormAccount();childForm.MdiParent = this;childForm.Show();}

此段程式码在开启子视窗之前,会先检查一遍所有的子视窗名称是否存在,存在的话就会成为焦点,当不存在的时候才会加入子视窗。

重点整理

新增 MenuStrip 或 ToolStrip 工具列当作选单设定 Form.IsMdiContainer 为 True子视窗可重複开启或者限制开启一次

相关学习文章

[C# WinForm] 建立第一个应用程式 Hello World
微软整合开发工具 Visual Studio 2022 安装教学
如何在 Visual Studio 2019 建立 Windows Forms App 程式安装档

官方教学说明

建立 MDI 父表单


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章