三.Form类和MenuItem类中和MDI相关的属性和方法:
  接下来就来介绍了Visual Basic .Net中创建、使用MDI窗体的相关知识和具体的实现方法。Visual Basic .Net为编写MDI程序提供了强大支持,使得程序员编写一个MDI程序是那么的方便,最能表现Visual Basic .Net对MDI支持的地方是窗体(Form组件)和菜单(MenuItem组件),只需对这二个组件的某些属性进行设置,就能够完成其他语言在编写MDI程序时要花费很多精力才能够实现的工作。首先简要介绍一下这二个组件对应.Net FrameWork SDK中的System.Windows.Forms命名空间中的Form类和MenuItem类中提供了的实现MDI的方法和属性。也正是由于在Form类和MenuItem类中提供了很多和MDI相关的属性和方法,才使得在Visual Basic .Net编写MDI应用程序那么方便,下面是这二个类中和MDI相关的属性、方法及其说明。
| 属性 | 
说明 | 
| IsMdiChild  | 
获取一个值,该值指示该窗体是否为MDI子窗体。 | 
| IsMdiContainer | 
获取或设置一个值,该值指示窗体是否为MDI子窗体的容器。 | 
| MdiChildren | 
获取窗体的数组,这些窗体表示以此窗体作为父级的MDI子窗体。 | 
| MdiParent | 
获取或设置此窗体的当前MDI父窗体。 | 
         表03:Form类中和MDI相关的属性及其说明
  其中和MDI编程相关最为重要的属性是"IsMdiChild"和"MdiParent"。
  Form类中虽然只提供了一个和MDI编程相关的方法,但此方法功能比较强大,它能够方便的实现对MDI父窗体中的所有MDI子窗体进行四种不同的排列:"层叠"、"水平平铺"、"垂直平铺"、"排列图标",这个方法就是"LayoutMdi"。
  "LayoutMdi"方法只有一个参数,此参数类型是MdiLayout枚举,MdiLayout枚举有四个值分别对应MDI父窗体中所有MDI子窗体的四种排列方式,MdiLayout枚举成员、其对应数值和说明如表04所示:
| MdiLayout枚举成员 | 
数值 | 
说明 | 
| Cascade  | 
0  | 
层叠排列 | 
| TileHorizontal | 
1  | 
横行平铺 | 
| TileVertical | 
2  | 
纵向平铺 | 
| ArrangeIcons  | 
3  | 
排列图标 | 
           表04:MdiLayout枚举成员及其说明
  MenuItem类中可用以实现MDI程序的组成成员虽然非常少,但所起的作用却是非常强大,表05所示是MenuItem类中用以MDI编程的属性及其说明:
| 属性 | 
说明 | 
| MdiList | 
获取或设置一个值,通过该值指示是否使用在相关联窗体内显示的MDI子窗口列表来填充菜单项。 | 
| MdiListItem | 
获取一个值,通过该值指示用于显示MDI子窗体列表的MenuItem。 | 
          表05:MenuItem类中用以MDI编程的属性及其说明
  其中"MdiList"属性在MDI编程中非常重要,这一点将在后面介绍的示例中得以体现。