摘要
在 Windows 窗体应用程序中,经常会在一个窗体中打开另一个窗体, 通过窗体上的不同菜单选择不同的操作,这种在一个窗体中打开另一个窗体的方式可以通过设置 MDI 窗体的方式实现。
MDI (Multiple Document Interface) 窗体被称为多文档窗体,它是很多 Windows 应用程序中常用的界面设计。
多文档界面(Multiple-Document Interface)简称MDI窗体,主要用于同时显示多个文档,每个文档显示在各自的窗口中。MD窗体中通常有包含子菜单的窗口菜单,用于在窗口或文档之间进行切换。
正文
如果需要某窗体设置成父窗体,只需要将窗体的属性 IsMdiContainer 设置为 True 即可。
再将子窗体的MdiParent指定父窗体就可以了。
创建两个窗体,一个FrmMain为父窗体,一个FrmChild为子窗体
父窗体代码
public FrmMain()
{
InitializeComponent();
this.IsMdiContainer = true;
}
private void btnLoadChild_Click(object sender, EventArgs e)
{
FrmChild child = new FrmChild();
child.MdiParent=this;
child.Show();
}
增加一下关闭所有子窗体方法
private void btnCloseChild_Click(object sender, EventArgs e)
{
foreach (var item in this.MdiChildren)
{
item.Close();
}
}
子窗体排列
ArrangeIcons | 3 | 所有 MDI 子图标均排列在 MDI 父窗体的工作区内。 |
---|---|---|
Cascade | 0 | 所有 MDI 子窗口均层叠在 MDI 父窗体的工作区内。 |
TileHorizontal | 1 | 所有 MDI 子窗口均水平平铺在 MDI 父窗体的工作区内。 |
TileVertical | 2 | 所有 MDI 子窗口均垂直平铺在 MDI 父窗体的工作区内。 |
private void btnSortChild_Click(object sender, EventArgs e)
{
this.LayoutMdi(MdiLayout.Cascade);
}