在FormOutput(计算成绩)代码编辑窗口中编写两个事件过程:
Private Sub Form_Load ()
Dim s As Single
s = Chinese + Math + English + Computer
TxtSum.Text = s
TxtAver.Text = s / 4
TxtDj.Text = CjDj (s / 4)
End Sub
Private Sub CmdReturn_Click ()
Unload Me
FormMain.Show
End Sub
多文档界面由父窗体和子窗体组成。父窗体也称MDI窗体,是作为子窗体的容器。子窗体亦称文档窗体,用来显示各自文档。 多文档界面允许用户同时打开多个文档,并可在不同文档间快速切换。所有子窗体具有相同的功能,且所有子窗体都包含在MDI窗体中。这在基于Windows的办公自动化软件中得到了充分使用。
多文档界面主要特性如下:
(1)主窗口MDI窗体(父窗体)只能有且必须有一个。
(2)子窗体至少有一个。
(3)所有子窗体的操作均被限定在MDI窗体的工作区中。
(4)当最小化子窗体时,它的图标将显示于MDI窗体上而不是在任务栏中。当最小化MDI窗体时,所有的子窗体也被最小化,只有MDI窗体的图标出现在任务栏中。
(5)当最大化一个子窗体时,它的标题与MDI窗体的标题一起显示在MDI窗体的标题栏上。
(6)MDI窗体和子窗体都可以有各自的菜单栏,子窗体装入时覆盖MDI窗体的菜单。
(7)通过设置MDI窗体的AutoShowChildren属性,可以使子窗体在装入时自动显示或隐藏。
1.创建MDI界面
用户要建立一个MDI窗体,可以选择“工程”菜单中的“添加MDI窗体”命令,在弹出的对话框中单击“打开”按钮,即可创建系统初置的标题和名称属性均为“MDIForm1”的MDI主窗体。
在该窗体上只能放置菜单或PictureBox控件。在PictureBox中可以放置其他控件,如命令按钮等。
2.加入子窗体
子窗体就是MDIChild属性设置为True的普通窗体。因此,要创建一个MDI子窗体,要先创建一个新的普通窗体,然后将它的MDIChild属性设置为True。
在设计阶段,子窗体独立于父窗体,与普通的Visual Basic窗体没有任何区别,可以在子窗体上增加控件、设置属性、编写代码。
在工程管理器窗口中可以看到,MDI窗体、MDI子窗体和标准窗体的图标不同,如图6-28所示。

图6-28 MDI窗体
3.与MDI有关的方法和事件
(1)显示MDI窗体及其子窗体
显示任何窗体的方法为Show。
加载子窗体时,其父窗体(MDI窗体)会自动加载并显示;而加载MDI窗体时,其子窗体并不会自动加载。将MDI窗体的AutoShowChildren属性设置为True,子窗体在装入时会自动显示。
(2)排列子窗体
在MDI窗体中使用Arrange方法来重新对齐子窗体,可以层叠,平铺或者沿着MDI窗体的下部排列子窗体图标等方式来显示子窗体。Arrange方法形式如下:
MDI窗体对象.Arrange 排列方式
其中:“排列方式”指定排列方式,取值如表6-17所示。
表6-17 Arrange排列方法的方式设置值
|
常 数 |
值 |
描 述 |
|
vbCascade |
0 |
层叠所有非最小化 MDI 子窗体 |
|
vbTileHorizontal |
1 |
水平平铺所有非最小化 MDI 子窗体 |
|
vbTileVertical |
2 |
垂直平铺所有非最小化 MDI 子窗体 |
|
vbArrangeIcons |
3 |
重排最小化 MDI 子窗体的图标 |
(3)关闭MDI窗体
关闭MDI窗体的代码如下:
Unload MDI窗体名
为了避免随着父窗体的关闭而使所有的子窗体结束,造成子窗体内容的丢失,VB提供了QueryUnload事件。系统在卸载MDI窗体之前就会触发QueryUnload事件,每一个打开的子窗体也都触发该事件。若需要保存有关信息及其他处理,可在该事件代码中完成。然后逐个卸载子窗体,最后卸载MDI窗体。
例6-11 多文档界面应用示例。
新建工程,添加一个MDI窗体MDIForm1,在其上设计一个图片框Picture1,然后在图片框上放置五个命令按钮和一个标签。其中命令按钮用于执行相应的操作,标签用于显示该多文档窗体中建立有多少个子窗体,设计界面如图6-29所示。

图6-29 MDIForm1设计界面
操作步骤:
(1)新建一个标准EXE工程。
(2)建立并设计MDI窗体
选择“工程”菜单中的“添加MDI窗体”命令,建立MDIForm1父窗体。然后按要求设计其上的各个控件,并如表6-18所示设置各控件主要属性。
表6-18 MDI窗体上各对象的主要属性设置
|
默认对象名称 |
设置对象名称 (Name属性) |
标题属性 (Caption属性) |
其他属性 |
|
MDIForm1 |
默认对象名称 |
MDI窗体 |
|
|
Picture1 |
无定义 |
Align属性为1—Align Top | |
|
Label1 |
空白 |
Autosize属性为True | |
|
Command1 |
新建 |
| |
|
Command2 |
层叠 |
| |
|
Command3 |
平铺 |
| |
|
Command4 |
排列 |
| |
|
Command5 |
退出 |
|