快速原型VB开发教程.docx
- 文档编号:29955043
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:38
- 大小:366.61KB
快速原型VB开发教程.docx
《快速原型VB开发教程.docx》由会员分享,可在线阅读,更多相关《快速原型VB开发教程.docx(38页珍藏版)》请在冰豆网上搜索。
快速原型VB开发教程
第一十二章菜单和控件
VB的设计环境
12.1菜单设计
菜单为程序界面有机组成部分,它在程序界面上给用户提供一种方便的给命令分组的方法,用户使用菜单将较为容易访问这些命令。
12.1.1
菜单的基本组成
如图12-1所示:
VB6.0的菜单为Window窗体的有机组成部分,菜单栏一般位于窗体的标题栏的下一行,包含一个或多个菜单标题。
当单击一个菜单标题(如“工程”),相应菜单标题的菜单就被拉下来。
菜单包含菜单项目的列表,菜单项包括命令(如“添加窗体”和“添加模块”)、分隔条、和子菜单标题(带有向右箭头的菜单项标题)。
在程序的窗体上,菜单项按功能分组组织以便于操作。
例如,在图12-1中与工程有关的命令“添加窗体”,“添加用户控件”,和“添加模块”等都列入“工程”的菜单中。
菜单项目可以执行三种不同的动作,有些菜单项直接执行动作,如图12-1中“工程”菜单中的“移除Form1”菜单项,将从工程中移除Form1窗体;一些后面带有(...)的菜单项弹出相应的对话框,要求用户提供执行动作所需信息。
如“工程”菜单中选择“部件”时,出现“部件”选择的对话框;一些后面带有向右箭头的菜单项将下拉其子菜单,如“工程”菜单中“更多ActiveX设计器”下拉其子菜单。
菜单项中还包括访问键和快捷键,它允许使用键盘上的组合键快速启动菜单项功能。
如在图12-1中“工程(P)”,可使用访问键“ALT+P”选中,选中“工程”菜单后,使用访问键“A”启动“添加文件”对话框,在未选中“工程”下拉菜单时,可用快捷键“CTRL+D”直接启动“添加文件”对话框。
下拉菜单中包括分隔符“-”,主要是为了分隔被细分的菜单项。
12.1.2菜单编辑器
上节介绍了菜单的组成,VB6.0中提供了功能强大的菜单设计工具—菜单编辑器,可使我们方便地设计各种菜单。
如图12-2所示:
可以通过菜单、快捷按钮、鼠标右键以及快捷热键“CTRL-E”来启动“菜单编辑器”。
1、菜单编辑器
菜单编辑器由标题栏、输入选择区、功能按钮区以及菜单项列表框组成。
标题栏:
显示“菜单编辑器”,“X”按钮用于关闭菜单编辑器。
输入选择区:
用于输入和修改用户创建的菜单的名字、标题等属性,对菜单的属性进行选择或删除。
菜单控件的两个最重要的属性是:
标题—这是出现在控件上的文本。
名称—这是代码中用来引用菜单控件的名字。
功能按钮区:
用于调整各菜单项的前后顺序、包含层次等关系,建立、删除或插入某个菜单项。
菜单项列表框:
将已经建立完成的各项菜单项以列表的形式列出,并通过某些符号表明各项之间的层次关系。
如图12-2和图12-3所示:
菜单项列表框列出当前窗体的所有菜单控件。
当在输入选择区中标题
文本框中键入一个菜单项时,该项出现在菜单控件列表框中。
从列表框中选取一个已存在的菜单控件可以编辑该控件的属性。
例如,图12-3中示出记事本应用程序中“文件”菜单的各种菜单项。
菜单项在菜单项列表框中的位置决定了该控件是菜单标题、菜单项、子菜单标题,还是子菜单项:
位于列表框中左侧平齐的菜单项作为菜单标题显示在菜单栏中。
列表框中被缩进的菜单项,当单击其前级菜单标题时才会在该菜单上显示。
一个缩进过的菜单项,如果后面还紧跟着再次缩进的一些菜单项,它就成为一个子菜单的标题。
在子菜单标题以下缩进的各个菜单项,就成为该子菜单的菜单项。
一个以连字符(-)作为它的标题属性的菜单项,作为一个分隔符条出现。
但是,若菜单项是一个菜单标题、带有子菜单项、被复选或无效、或者有一个快捷键,那么它就不能作为分隔符条。
2、建立菜单项
用菜单编辑器可以创建、修改和删除菜单和菜单栏。
在菜单编辑器中创建菜单,请按照以下步骤执行:
●选取该窗体
●启动“菜单编辑器”
●在“标题”文本框中,键入第一个菜单标题,通过(&字符)设定菜单项的访问键,在菜单中,这一字符会自动加上一条下划线;菜单标题文本显示在菜单项列表框中。
●在“名称”文本框中,键入将用来在代码中引用该菜单控件的名字。
●单击向左或向右箭头按钮,改变该菜单控件的缩进级。
●设置菜单控件的其他属性,可以在菜单编辑器中做,也可以在“属性”窗口中做。
●选取“下一个”就可再建一个菜单控件。
或者,单击“插入”可在现有的控件之间增加一个菜单控件。
也可以单击向上与向下的箭头按钮,在现有菜单控件之中移动控件。
●如果窗体所有的菜单控件都已创建,选取“确定”可关闭菜单编辑器。
●
创建的菜单标题将显示在窗体上。
在设计时,单击一个菜单标题可下拉其相应的菜单项。
3、分隔菜单项
分隔符条作为菜单项间的一个水平行显示在菜单上。
在菜单项很多的菜单上,可以使用分隔符条将各项划分成一些逻辑组。
例如VB的“帮助”菜单,使用分隔符条将其菜单项分成三组,如图12-4所示。
要在菜单编辑器中创建分隔符条,请按照以下步骤执行:
●在已有的菜单中选取“插入”,在想要分隔开来的菜单项之间插入一个菜单控件。
新菜单项缩进到与它要隔开的菜单项同级。
●在“标题”文本框中键入一个连字符(-)。
●设置“名称”属性。
●选取“确定”,关闭菜单编辑器。
注意:
虽然分隔符条是当作菜单控件来创建的,它们却不能响应Click事件,而且也不能被选取。
4、设定访问键和快捷键
通过定义访问键和快捷键可改进键盘对菜单命令的访问。
访问键:
访问键允许按下ALT键并打入一个指定字符来打开一个菜单。
一旦菜单打开,通过按下所赋值的字符(访问键)可选取控件。
在菜单控件的标题中,一个指定的访问键表现为一个带下划线的字母,如图12-4所示。
要在菜单编辑器中给菜单控件赋值访问键,请按照以下步骤执行:
●选取要赋值访问键的菜单项。
●
在其“标题”框中,在要作为访问键字符的前面直接键入一个(&)字符。
例如,如果图12-2所示的“编辑”菜单中的“剪切”菜单项,其标题输入的是:
剪切(&T)。
注意:
菜单中不能使用重复的访问键。
或者该键将不起作用。
快捷键
快捷键按下时会立刻运行一个菜单项,可以为频繁使用的菜单项指定一个快捷键。
快捷键的赋值包括功能键与控制键的组合,如图12-5中的CTRL+Z键或CTRL+Y键。
它们出现在菜单中相应菜单项的右边。
对菜单项设置快捷键,按照以下步骤执行:
●打开“菜单编辑器”。
●选取该菜单项。
●在“快捷键”组合框中选取功能键或者键的组合。
要删除快捷键赋值,应选取列表顶部的"(none)"。
注意:
快捷键将自动出现在菜单上;因此,不需要在菜单编辑器的“标题”框中键入。
5、菜单控件其他重要属性
菜单控件其他重要属性如:
“有效”、“复选”和“可见”选项在实际应用中是相当普遍的。
“有效”选项
用于决定菜单项是否有效,其中的控制命令能否执行。
该项选中,菜单项有效,否则菜单项无效,此时菜单项为灰色。
此属性也可在程序中通过菜单控件的Enable设置为False控制。
如图12-5所示的“”菜单项的“剪切”、“复制”。
“复选”选项
用于决定菜单项是否有复选标记。
该项选中,则菜单项有复选标记,否则没有复选标记。
这也可在程序中通过设置菜单控件的Checked属性为True来实现。
如图12-6所示,“工具箱”菜单项为复选。
“可见”选项
决定菜单项是出现还是隐藏。
若选中,则菜单是出现状态;否则为“隐藏”状态。
可在代码中通过设置控件的Visible属性来设置。
注意:
菜单项中所有的子菜单项应至少有一个是可见的,不能设为全部“隐藏”。
12.1.3编写菜单命令
当用户选取一个菜单项时,该菜单控件的Click事件出现。
需要在该事件代码中为每个菜单控件编写一个Click事件过程。
除分隔符条以外的所有菜单控件(以及无效的或不可见的菜单控件)都能识别Click事件。
在菜单事件过程中编写的代码与在控件任何其它事件过程中编写的代码完全相同。
例12.1:
设计如图12-7程序界面中的文件菜单,并编写相应的命令。
按照上述介绍的步骤,首先设置一个标题为example的窗体,然后启动菜单编辑器进行“文件”菜单的设计。
菜单设计如图12-8所示,其中在菜单编辑器中输入和选择如表12-1所示:
“打开”和“退出”菜单项代码设计分别如下:
SubmnuFileOpen_Click()
DimstrOpenFileNameAsString
frmSDI.CMDialog1.Filename=""
frmSDI.CMDialog1.ShowOpen
IfErr<>32755Then
'选择"Cancel".
strOpenFileName=frmSDI.CMDialog1.Filename
'如果文件大于65K,则它不能被打开,取消此操作。
IfFileLen(strOpenFileName)>65000Then
MsgBox"文件太大不能被打开。
"
ExitSub
EndIf
EndIf
EndSub
SubmnuFileClose_Click()
UnloadMe
EndSub
表12-1:
例题菜单设计的一些输入和选择
标题
名称
有效
可见
文件(&F)
MnuFile
√
√
新建(&N)
MnuFileNew
√
√
打开(&O)
MnuFileOpen
√
√
存为(&S)
MnuFileSave
√
√
另存为(&A)
MnuFileSaveAs
√
√
-
MnuFSep1
√
√
退出(&X)
MnuFileExit
√
√
一旦菜单标题被选取,VisualBasic将自动地显示出一个菜单;但是,没有必要为一个菜单标题的Click事件过程编写代码,除非想执行其它操作,比如每次显示菜单时使某些菜单项无效。
注意:
在设计时,当关闭菜单编辑器时,所创建的菜单将显示在窗体上。
在窗体上选取一个菜单项将显示那个菜单控件的Click事件过程。
12.1.4弹出菜单
VB6.0中在菜单编辑器中设计的菜单是下拉式菜单。
弹出式菜单是显示于窗体之上,独立于菜单栏的浮动式菜单,如图12-7所示。
弹出式菜单位置取决于鼠标右键按下时指针的位置,因此,弹出式菜单又称为上下文菜单。
在某些情况下,弹出式菜单会使系统功能的实现更加简洁和高效,系统的使用更加得心应手。
Widnows应用程序的弹出式菜单一般是当用户在程序的窗体上点按鼠标键时出现的。
弹出式菜单多用于实现系统的附加或增强功能。
弹出式菜单的内容,可以随点按鼠标键的位置不同而变化。
由于弹出的菜单要覆盖屏幕的一部分,所以应尽量缩短菜单里的文字。
在VB6.0中,弹出式菜单的实现要用到下拉式菜单设计的技术和PopupMenu方法。
具体的做法是:
在菜单编辑器中设计好相应窗体的弹出式菜单。
要注意的是,要弹出的菜单必须至少有一个子菜单;因而这个菜单不能有快捷键,并且菜单控件的Checked属性必须是False。
再把弹出式菜单的Visible属性改为False。
可以将至少有一个菜单项的菜单,在运行时作为弹出式菜单予以显示。
使用PopupMenu方法可显示弹出式菜单。
[object.]PopupMenumenuname[,flags[,x[,y[,boldcommand]]]]
Object:
调用弹出式菜单的对象名。
Menuname:
设置为弹出式菜单的菜单名。
Flags参数:
在PopupMenu方法中使用flags参数可以进一步定义弹出式菜单的位置与性能。
见下表12-2
表12-2:
Flags参数表
位置参数
VbPopupMenuLeftAlign(缺省)
于x位置定义了该弹出式菜单左边界
VbPopupMenuCenterAlign
弹出式菜单以x位置为中心
VbPopupMenuRightAlign
于x位置定义了该弹出式菜单右边界
性能参数
VbPopupMenuLeftButton(缺省)
鼠标左键单击触发菜单项时
VbPopupMenuRightButton
鼠标右键或者左键单击触发菜单项
Boldcommand参数:
boldcommand参数指定在显示的弹出式菜单中是否以粗体字体显示菜单控件名称。
弹出式菜单中只能有一个菜单控件被加粗。
例12.2:
当用户用鼠标右键单击一个窗体时,以下的代码将例12.1中的“文件”菜单mnuFile设置为弹出式菜单。
用MouseUp或者MouseDown事件来检测何时单击了鼠标右键,标准用法是使用MouseUp事件:
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAs_
Integer,XAsSingle,YAsSingle)
IfButton=2Then '检查是否单击了鼠标右键。
PopupMenumnuFile'把文件菜单显示为弹出式菜单。
EndIf
EndSub
直到菜单中被选取一项或者取消这个菜单时,调用PopupMenu方法后面的代码才会运行。
注意:
每次只能显示一个弹出式菜单。
在已显示一个弹出式菜单的情况下,对后面的调用PopupMenu方法将不予理睬。
在一个菜单控件正活动的任何时刻,调用PopupMenu方法均不会被理睬。
若选用多组参数,可用Or操作符将它们连起来。
例12.3:
当用户单击一个命令按钮时,弹出边框在窗体中心的弹出式“文件”菜单。
该菜单触发受到鼠标右键或左键单击的菜单项的Click事件。
PrivateSubCommand1_Click()
'X变量和Y变量的尺寸。
Dimx,y
'设置X变量和Y变量到窗体中心。
x=ScaleWidth/2
y=ScaleHeight/2
'显示弹出式菜单。
PopupMenumnuFile,vbPopupMenuCenterAlignOr_
vbPopupMenuRightButton,x,y
EndSub
12.2 常用控件
在VB6.0中,控件是非常重要的部件,在窗体上使用控件实现应用的各种功能,并能提高应用程序的开发效率。
控件是以图标的形式存放于集成开发环境中的工具箱中(如图12-10所示),大致可分为三类:
内容控件、ActiveX控件以及可插入对象。
但在应用VB6.0开发应用程序系统时,使用频率最高的控件是VB6.0的内部控件,在此节中我们将详细介绍这些控件,如:
按钮、标签、文本框、选择按钮、列表框、下拉列表框、滚动条、时钟以及命令对话框。
12.2.1命令按钮(CommandButton)
命令按钮在外表上看起来就是一个按钮,用于开始、中断或者结束一个进程,当命令按钮被选取时显示按下的形状。
1、命令按钮属性
与字体有关的常用属性
FontName
显示文本所用的字体
FontBold
加粗显示所用的字体
FontItalic
倾斜显示所用的字体
Fontsize
显示所用的字体大小
Fontunderline
下划显示所用的字体
与位置有关的常用属性
Height
设置所选对象的高度
Width
设置所选对象的宽度
Left
对象左边缘与容器左边缘的距离
Top
对象顶端与容器顶端的距离
与外观有关的常用属性
Appearance
对象在运行时是否以3D效果显示
Caption
对像标题栏中或图像下面的文本
BackColor
对象中文本或图像的背景色
与行为有关的常用属性
Cancel
允许用按ESC键取代单击此按钮的功能
Default
允许用按ENTER键取代单击此按钮的功能
Enabled
用于设置命令按钮的有效性
Visible
设置命令按钮的可显示性
其它无归类的常用属性
Index
控件对象在控件数组中的标识号
MousePoint
鼠标移到对象特定部分时显示的鼠标指针类型
Tag
用来存储程序中需要的额外数据
说明:
(1)Cancel属性:
此属性设置为True时,可用按ESC键代表单击鼠标按钮;设置为False时,禁止任意键代表单击此按钮的功能。
默认为False状态。
VB6.0中,一个窗体只允许有一个命令按钮的Cancel属性被设置为True的状态。
(2)Default属性:
此属性设置为True时,可以用按ENTER键代表单击鼠标按钮;设置为False时,禁止任意键代表单击此按钮的功能。
默认为False状态。
在VB6.0中,一个窗体只允许有一个命令按钮的Default属性被设置为True的状态。
(3)Enabled属性:
设置命令按钮的有效性,在需要暂时使命令按钮失去作用时使用,以防止发生误操作。
设置为True,则命令按钮有效;设置为False,则命令按钮无效。
(4)Visible属性:
设置命令按钮的可显示性,在需要暂时使命令按钮消失时使用,以避免误操作。
设置为True,则按钮显示;设置为False,则命令按钮消失。
此属性与Enabled属性结合使用,控制命令按钮的操作。
(5)字体有关属性:
设置与字体有关的属性,除上述介绍的属性外,还可通过Font对象属性设置,双击属性窗口中的Font属性,这时系统返回字体对象即字体对话框,在进行设置或选择。
若需在程序中设置则如下:
Command1.Font.Bold=True
例12.4:
设计一个求和界面,当输入数据后,求和命令按钮有效。
2、命令按钮事件
命令按钮事件命令按钮能够接受的常用事件为:
Click,MouseDown,MouseUp,MouseMove,KeyPress,KeyUp和KeyDown等鼠标键盘事件。
注意:
命令按钮不能接受DblClick事件。
常用命令按钮事件
Click
单击鼠标左键时发生
MouseDown
当按下鼠标按钮时发生
MouseUp
当释放鼠标按钮时发生
MouseMove
当移动鼠标时发生
KeyPress
当用户按下和松开一个键时发生
KeyUp
当一个对象具有焦点时松开一个键时发生
KeyDown
当一个对象具有焦点时按下一个键时发生
3、命令按钮方法
命令按钮的常用方法有:
Drag、Move、Refresh、Setfocus、Zorder。
常用命令按钮方法
Drag
用于控件的开始、结束或取消拖动操作
Move
用以移动表单或控件
Refresh
强制全部重绘一个窗体或控件
Setfocus
将焦点移至指定的控件或窗体
Zorder
将表单或控件放置在z-顺序的前端或后端
例12.5:
设计例12.4中的事件过程程序。
PrivateSubCommand1_Click()
Label2.Caption=CStr(CLng(Text1.Text)+CLng(Text2.Text))
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then‘是否为ENTER键
KeyAscii=0
IfText1.Text<>""AndText2.Text<>""Then
Command1.Enabled=True
EndIf
SendKeys"{Tab}"
EndIf
EndSub
PrivateSubText2_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
KeyAscii=0
IfText1.Text<>""AndText2.Text<>""Then
Command1.Enabled=True
EndIf
SendKeys"{Tab}"
EndIf
EndSub
12-2-2标签及文本框
标签用于显示用户不能直接改变的文本,常与无Caption属性的控件配合使用,如文本框。
文本框用于显示用户输入的、或运行时在代码中赋予控件的信息,有时也称作编辑控件。
1、标签属性
基本上某些常用属性与在命令按钮的常用属性一样,需要加以介绍的有如下几个属性:
ForeColor
设置控件的文字或图像的前景颜色
AutoSize
决定控件是否自动改变大小以显示其全部内容
Alignment
决定控件中文本的对齐方式
WordWrap
扩展标签大小的调整方式,与AutoSize配合
2、标签事件与方法
标签响应鼠标事件,支持鼠标双击DblClick事件的响应,但不响应键盘事件;支持的常用方法与命令按钮大致。
3、文本框属性
文本框除了如上所述的大部分常用属性外,还有如下的常用属性:
Text、PassWordChar、Locked、MaxLength、MutiLine、ScrollBars,但文本框无Caption属性,常与标签配合使用。
Text
设置或返回编辑域中的文本
PassWordChar
用于将任何输入字符以输入的特定字符代替
Locked
设定文本框是否可编辑
MaxLength
限定文本框中可输入文本的长度
MutiLine
设置单行或多行文本
ScrollBars
多行文本时,设置加入滚动条
注意:
PassWordChar属性在MutiLine=False时使用,而ScrollBars在MutiLine=True时使用。
4、文本框事件与方法
文本框支持鼠标、键盘事件以及常见的方法。
例12.6:
标签AutoSize、WordWrap属性和文本框的MutiLine属性
在标签中显示“白日依山尽黄河入海流欲穷千里目更上一层楼”,标签的长度仅能容纳“白日依山尽黄河入海流”,本例如图12-13所示,说明在AutoSize=True时,WordWrap=false标签长度水平扩展,=false时垂直扩展。
同样在文本框中,若文本框的属性MutiLine=false时,文本框仅在第一行显示“白日依山尽黄河入海流”,在MutiLine=true时文本框启动多行显示。
如图12-14所示:
例12.7:
注册界面,当用户进入应用程序时,一般需要输入用户名和密码进行注册。
此程序需用到文本框的PassWordChar属性。
在注册界面中,输入密码的文本框Text2的PassWordChar属性域输入“*”,所以在其中输入密码时,代之显示“******”。
该程序简易代码如下:
OptionExplicit
PrivateSubCommand1_Click()
IfText1.Text<>""AndText2.Text<>""Then
IfText1.Text<>"hhh"OrText2.Text<>"123456"Then
Form1.Caption="用户名/密码不对!
请重输"
Text1.SetFocus
Else
Unloa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 原型 VB 开发 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)