,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDIForm。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADDMDIForm按钮,生成一个窗体。窗体的属性设置见表5-1。
表5-1主窗体属性设置
属性
属性取值
Name
FrmMain
Caption
仓库管理系统
StartUpPosition
CenterScreen
WindowState
Maximized
主窗体界面设计如图5-1所示。
图5-1系统主窗体
5.3创建主窗体菜单
熟悉Windows下应用程序的用户对菜单一定有比较深的印象。所谓菜单,即是指应用程序中为用户提供的一组命令,这些命令出现在应用程序界面的顶部。每项菜单有多项子菜单,具有一定的专门功能,用户容易通过主菜单来访问其下的子菜单。增加菜单可以增强应用程序的功能。下面将介绍菜单及菜单的编辑和使用。
1.菜单简介
菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在"MenuEditor"中定义的一个菜单控件相对应。
为了使应用程序简单好用,应该将菜单相按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption属性、Enabled和Visible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。
2.VisualBasic菜单编辑器
菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。
要打开菜单编辑器,在"Tools"菜单中选择"MenuEditor"选项。或击鼠标右键,选择弹出式菜单中的"MenuEditor"。弹出菜单编辑器窗口如图5-2所示。
5-2菜单编辑器
菜单编辑器的基本属性如下:
Caption-出现在控件上的文本。
Name-代码中用来引用菜单控件的名字。
shortcut-可以访问菜单的键盘按键组合。
以上介绍了菜单编辑器的基本情况和属性,接下来将来介绍利用菜单编辑器创建菜单的过程。
(1)选取待创建菜单的窗体,激活该窗体。
(2)从菜单栏的"Tools"菜单中,选取"MenuEditor"并单击(或在"工具栏"上单击"MenuEditor"按钮)。
(3)在菜单编辑器的"Caption"文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前加上一个(&)字符。在菜单中,这一字符会自动加上一条下划线。
(4)在菜单编辑器的"Name"文本框中,键入将用来在代码中引用该菜单控件的名字。命名菜单控件的规则如下:
(a)菜单中项目名称应当唯一,但不同菜单中相似动作项目可以重名。
(b)每一个项目名称应当有一个用键盘选取命令的唯一的记忆访问字符。访问字符通常是菜单标题的第一个字母;每个菜单标题不能用同一个字符。
(c)如果命令在完成之前还需要附加信息,则在其名称后面应当有一个省略号(...)。
(5)单击向左或向右箭头按钮,可以改变该控件的缩进级。
(6)如果需要,还可以设置控件的其他属性。
(7)创建新的菜单控件时,选取"Next"命令。
(8)单击"Insert"可以在现有的控件之间增加一个菜单控件。
(9)单击向上与向下的箭头按钮,可以在现有菜单控件之中移动控件。
(10)菜单控件创建好后,选取"OK"可关闭菜单编辑器。
创建的菜单标题将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜项。
创建分隔符,如果在设计的菜单中创建分隔符条,只需在想要分隔开来的菜单项之间插入一个菜单控件。单击左、右箭头按钮使新菜单项缩进到与它要隔开的菜单项同级。然后在"Caption"文本框中键入一个连字符(-)。设置"Name"属性。"OK",关闭菜单编辑器。
创建赋值访问键和快捷键
为了提高应用程序的性能,为用户提供最方便、快捷的操作,可以定义菜单的访问键和快捷键,改进键盘对菜单命令的访问。
访问键,要在菜单编辑器中给菜单控件赋值访问键,先选取要赋值访问键的菜单项,在该菜单项"Caption"框中,要在作为访问键字符的前面键入一个(&)字符。
快捷键,快捷键提供了一种键盘单步的访问方法,按下时会立刻运行一个菜单项。快捷键的赋值包括功能键与控制键的组合,如CTRL+F1键或CTRL+A键。他们出现在菜单中相应菜单项的右边。
根据以上介绍的方法创建本设计的菜单结构如图5-3所示
图5-3仓库管理系统菜单结构
系统初始化菜单的代码如下:
PrivateDeclareFunctionGetWindowLib"user32"(ByValhwndAsLong,ByValwCmdAsLong)AsLong
PublicSubInitPurview()'初始化17种权限状态
DimiAsInteger
Fori=16To0Step-1
IfGetBit(Purview,i+1)=0Then
权限类别(16-i)=0
Else
权限类别(16-i)=1
EndIf
Next
EndSub
PrivateSubInitMenu()'根据用户权限来初始化菜单
If权限类别(3)=0Then
M月盘点.Enabled=False
tbToolBar.Buttons(4).Enabled=False
EndIf
If权限类别(4)=0Then
M供应商.Enabled=False
登记新供应商.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(5)=0Then
M往来客户.Enabled=False
登记新客户.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(6)=0Then
M单据查询.Enabled=False
M库存查询.Enabled=False
M货物出入统计.Enabled=False
M职员操作统计.Enabled=False
L货物出入统计.MouseIcon=Picture1.MouseIcon
L职员操作统计.MouseIcon=Picture1.MouseIcon
L单据查询.MouseIcon=Picture1.MouseIcon
L库存查询.MouseIcon=Picture1.MouseIcon
tbToolBar.Buttons(5).Enabled=False
tbToolBar.Buttons(8).Enabled=False
EndIf
If权限类别(8)=0Then
M打印入库单.Enabled=False
M打印出库单.Enabled=False
M打印借入单.Enabled=False
M打印借出单.Enabled=False
M打印调拔单.Enabled=False
M打印报损单.Enabled=False
M打印月盘点.Enabled=False
tbToolBar.Buttons(10).Enabled=False
EndIf
If权限类别(9)=0Then
M公司信息.Enabled=False
修改公司信息.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(10)=0Then
M职员信息.Enabled=False
登记新职员.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(11)=0Then
M仓库信息.Enabled=False
创建新仓库.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(12)=0Then
M货物信息.Enabled=False
登记新货物.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(13)=0Then
M数据清除.Enabled=False
M系统初始化.Enabled=False
EndIf
If权限类别(14)=0Then
M备份数据库.Enabled=False
M还原数据库.Enabled=False
M还原到昨天数据库.Enabled=False
备份数据库.MouseIcon=Picture1.MouseIcon
还原数据库.MouseIcon=Picture1.MouseIcon
EndIf
If权限类别(15)=0Then
M查看日志.Enabled=False
查看日志.MouseIcon=Picture1.MouseIcon
tbToolBar.Buttons(12).Enabled=False
EndIf
If权限类别(16)=0Then
mnuUserManage.Enabled=False
L用户管理.MouseIcon=Picture1.MouseIcon
EndIf
EndSub
"菜单"中的各个"子菜单"的程序代码如下:
启动主窗体时的需要的代码
PrivateSubForm_Load()
'初始化m_checkado
m_checkado.ConnectionString=DataConnectString
m_checkado.Visible=Fa
上一篇:
VB人才管理系统(论文和程序)
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值