界面设计 设计好的界面如图20所示。

图20 图书管理系统界面
这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI 应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间进行切换。
菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。
1、创建主窗体
首先创建一个工程,命名为图书管理系统,选择“工程”→“添加MDI窗体”命令,则在项目中添加了主窗体。该窗体的一些属性如表1所示。
表1 主窗体的属性
| 属 |
性值 |
| Caption |
图书管理系统 |
| Name |
Main |
| Menu |
Mainmenu1 |
| Windowstate |
Maxsize |
Windowstate的值为Maxsize,即程序启动之后自动最大化。
将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。
表2 菜 单 项 表
| 菜 单 名 称 |
Text属性 |
功 能 描 述 |
| MenuItem1 |
图书管理 |
顶级菜单,包含子菜单 |
| MenuItem2 |
图书登记 |
调出图书登记窗体 |
| MenuItem3 |
图书借阅 |
调出图书借阅窗体 |
| MenuItem4 |
图书赔偿 |
调出图书赔偿窗体 |
| MenuItem5 |
图书资料 |
顶级菜单,包含子菜单 |
| MenuItem6 |
查询输出 |
调出查询输出窗体 |
| MenuItem7 |
值班管理 |
顶级菜单,没有子菜单 |
| MenuItem8 |
投诉管理 |
顶级菜单,没有子菜单 |
| MenuItem9 |
系统管理 |
顶级菜单,包含子菜单 |
| MenuItem10 |
增加用户 |
调出用户窗体 |
| MenuItem11 |
修改密码 |
调出密码窗体 |
| MenuItem12 |
退出 |
系统退出 |
主窗体如图21所示。

图21 主窗体
2、创建各子窗体
选择“工程”→“添加窗体”命令,添加子窗体。
在新建Visual Basic工程时自带的窗体中,将其属性MIDChild改成True,则这个窗体成为MID窗体的子窗体。
在这个项目中,要创建的子窗体如表3所示。
表3 所有子窗体
| 子 窗 体 名 |
Text |
| 图书登记 |
frmdengji |
| 图书借阅 |
frmjieyue |
| 图书赔偿 |
frmpeichang |
| 增加新用户 |
frmadduser |
| 查询输出 |
frmfind |
| 登录系统 |
frmlogin |
| 修改密码 |
frmchangepwd |
下面分别给出这些子窗体,以及它们所使用的控件。
(1) 图书登记子窗体如图22所示,其控件如表4所示。

图22 图书登记子窗体
表4 图书登记子窗体控件
| 控 件 类 别 |
控件Name |
控件Text |
| Label |
Label1 |
编号 |
| Label2 |
书名 |
| Label3 |
类型 |
| Label4 |
购买日期 |
| Label5 |
定价 |
| TextBox |
Text1 |
(空) |
| Text2 |
(空) |
| Text3 |
(空) |
| Text4 |
(空) |
| Text5 |
(空) |
| CommandButton |
Command1 |
增加记录 |
| Command2 |
删除记录 |
| Command3 |
下一条 |
| Command4 |
上一条 |
| Command5 |
第一条 |
| Command6 |
最后一条 |
| Command7 |
退出 |
| ADO |
DataAdodc1 |
(空) |
| DataGrid |
DataGrid1 |
(空) |
图书借阅和图书赔偿子窗体分别如图23和图24所示,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。

图23 图书借阅子窗体

图24 图书赔偿子窗体
(2) 增加用户子窗体如图25所示,其控件如表5所示。

图25 增加用户子窗体
表5 增加用户子窗体控件
| 控 件 类 别 |
控件Name |
控件Text |
| Label |
Label1 |
输入用户名 |
| Label2 |
输入密码 |
| Label3 |
确认密码 |
| Label4 |
选择权限 |
| TextBox |
Text1 |
(空) |
| Text2 |
(空) |
| Text3 |
(空) |
| ComboBox |
Comb1 |
(空) |
| CommandButton |
Commandl |
确定 |
| Command2 |
取消 |
(3) 修改密码子窗体如图26所示。

图26 修改密码子窗体