在开发 WinForm 程序时,有一种常见的设计版面是多重视窗(MDI)。
所谓的多重视窗(MDI)就是在原本的视窗内,再开出新的视窗,也称为子母视窗。
多重视窗是许多视窗程序会采用的版面配置,适合在大型的专案中会使用,例如 Visual Studio 也是使用多重视窗的配置。
以下会示范如何建立基本的多重视窗,以及如何限制视窗只能开启一次。
在主要表单新增 MenuStrip 或是 ToolStrip。
这两种工具都适合放在主表单上面,当作开启子表单的按钮。
我所放的是 ToolStrip 工具列。
将主要表单的「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();
}
此段程序码在开启子视窗之前,会先检查一遍所有的子视窗名称是否存在,存在的话就会成为焦点,当不存在的时候才会加入子视窗。
[C# WinForm] 建立第一个应用程序 Hello World
微软整合开发工具 Visual Studio 2022 安装教学
如何在 Visual Studio 2019 建立 Windows Forms App 程序安装档
官方教学说明
建立 MDI 父表单
>>: Python & SQLALchemy 学习笔记_新增、修改以及删除资料
什麽是「单点故障」? 单点故障的英文是 (single point of failure,简称 SP...
#以下内容皆由初学者撰写,有错误可能,不建议尽信 30天Python自学: Day01 Python...
序言 嗨大家好,我是小一。 由於昨天发文按成储存草稿,於是砍掉重练了QQ 第一次参加铁人赛;也是第一...
审核跟踪通常被视为侦查控件。查看审核跟踪可以发现或发现入侵或不合规的活动。 根据ISO 14641:...
pytest档案命名规则 python 档名为 test_*.py 或 *_test.py meth...