WinForms 中的单文档和多文档

来源:互联网 发布:中小企业的数据库 编辑:程序博客网 时间:2024/05/21 22:50

原文地址:http://www.dingos.cn/index.php?topic=962.0


窗体可以是基于SDI(单文档界面,Single Document Interface)或MDI(多文档界面,Multiple Document Interface)。

【主窗体的特点】
  • 启动一个 MDI 应用程序时,首先显示父窗体。
  • 它是应用程序中所有其他窗口的容器。
  • 每个应用程序界面都只能有一个 MDI 父窗体。
  • 在任何指定的时间都可以打开多个子窗体。
  • 任何 MDI 子窗体都不能移出 MDI 框架区域。
  • 关闭 MDI 父窗体则自动关闭所有打开的 MDI 子窗体。

【创建MDI窗体】
  • 将父窗口的IsMdiContainer属性设置为True。
  • 选择“项目”->“添加 Windows 窗体”(即子窗体)
  • 添加给定的代码,将 TestForm 设置为子窗体
    frmChild fc = new frmChild();   //实例化子窗体
    fc.MdiParent = this;      //设置子窗体的父窗体
    fc.Show();         //显示子窗体
  • 如果窗体为MDI父窗体,则在触发MDI父窗体的Closing(Closed)事件之前,将触发所有MDI子窗体的Closing(Closed)事件。

【排列子窗口】
  • 在 MDI 父窗体内排列多文档界面 (MDI) 子窗体。
  • 每个事件处理程序都调用 LayoutMdi 方法,以排列当前在应用程序中打开的所有子窗体。
    this.LayoutMdi( MdiLayout.枚举值 );
  • MdiLayout枚举成员

成员名称
说明
ArrangeIcons排列所有MDI子窗体的图标Cascade层叠所有MDI子窗口TileHorizontal水平平铺所有MDI子窗口TileVertical垂直平铺所有MDI子窗口