第二章 VB的界面设计.docx
《第二章 VB的界面设计.docx》由会员分享,可在线阅读,更多相关《第二章 VB的界面设计.docx(38页珍藏版)》请在冰点文库上搜索。
![第二章 VB的界面设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/20/58b42167-136c-4823-b562-c2b5bb456310/58b42167-136c-4823-b562-c2b5bb4563101.gif)
第二章VB的界面设计
第二章 VB的界面设计
2.1 VB用户界面设计基础
1.概述
界面的设计有两步:
先绘制控件,然后确定控件属性。
绘制控件:
在工具箱里单击想画的控件,在窗体里按下鼠标并拖曳,然后松开鼠标即可。
确定属性:
先选中控件,然后按F4键或单击工具栏上的属性窗口进入属性(Properties)窗口,再在属性窗口中找到要设置的属性并进行设置。
2.常用属性的设置
(1)Name属性
对象都有名字,计算机把名字看成对象于对象之间的根本差异,因此在同一窗体里不许出现重名的情况(除非这是一个控件数组),且名字不得超过40个字。
在简单的程序里,给控件命名不是很必要,完全可以使用控件Name属性的缺省值。
例如Text1。
但在有几十个控件的复杂窗体里,就很难区分它们。
所以,VB推荐由三个小写字母的前缀和一个第一个字母为大写的描述性单词组成的名字。
例如cmdMyButton是一个命令按钮(前缀是cmd)
推荐的前缀
对象
前缀
例子
确认框(CheckBox)
chk
chkCareerChioce
组合框(ComboBox)
cbo
cboCrimesCommitted
命令钮(CommandButton)
cmd
cmdExit
数据库控件(DataControl)
dat
datTopSecretInfo
目录列表框(DirectoryListBox)
dir
dirTree
驱动器列表框(DriveListBox)
drv
drvHardDisk
文件列表框(FileListBox)
fil
filDocuments
窗体(Form)
frm
frm1040Tax
框架(Frame)
fra
fraGroupButtons
水平滚动条(HorizontalScrollBar)
hsb
hsbTemperature
图形(Image)
img
imgPrettyDrawing
标签(Label)
lbl
lblFakeName
线(Line)
lin
linBorder
列表框(ListBox)
lst
lstCandidates
菜单(Menu)
mnu
mnuHamAndEggs
选项钮(OptionButton)
opt
optStation101
图形框(PictureBox)
pic
picPrettyPicture
几何图形(Shape)
shp
shpUpOrShipOut
文本框(TextBox)
txt
txtWarning
垂直滚动条(VerticalScrollBar)
vsb
vsbMoneyRaised
(2)Caption属性
Caption即标题,是可以在对象外观上直接看见的文本,可以长达255字符,包括空格和标点符号,比如一个叫cmdOk的命令钮,它的Caption属性就可以是“Ok”。
注意:
并不是所有的对象都有此属性,比如文本框、图片框、线条等就没有。
为按钮设置热键:
在设置Caption属性时,在需要加下划线的字母前加上“&”符号,例如“&File”,输出的就是“File”,这样就可以通过按ALT键和标题上那个带下划线的字母来选取它了,不必为此编任何代码。
Name和caption的比较:
1)Name是系统用来识别对象的,编程时需要用它来指代各对象;Caption是给用户看的,提示用户该对象的作用;
2)Name可以采用系统默认的名称,但Caption应该根据实际情况改成意义明了的名词;
3)所有对象都有Name,但不一定都有Caption;
(3)Top,Left属性
这两个属性决定对象的位置。
只有两种情况需要在属性窗口里设置这两个属性:
第一种是用户没有鼠标,第二种是程序员需要十分精确地设定这两个值。
当选中对象,单击并拖曳它的时候,便在修改这两个值了。
(4)Height,Width属性
这两个属性决定了对象的大小,当选中控件时,它周围出现八个小黑方块,把鼠标指向这些方块,鼠标指针将变成一个双向的箭头,这时按下鼠标并拖曳它,即可改变控件的大小,也就改变了Height,Width属性。
2.2 创建窗体
1. 窗体的属性
(1) 常用属性简介
属性
名称
说明
Name
窗体名称
系统识别窗体的标识名,一个窗体名必须以一个字母开头,可包含数字和下划线,但不能包含空格和标点符号。
Caption
窗体标题
出现在窗体标题栏中的文本内容
Icon
窗体图标
这个属性是用户经常要使用的一种属性。
当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。
BackColor
窗体背景色
可以从属性框里弹出调色板,选择所需要的颜色
ForeColor
窗体前景色
窗体上打印文字的颜色
BorderStyle
边框风格
这个属性决定了窗体边框的样式,共有6种属性值。
改变窗体的BordrStyle属性后,窗体在屏幕上没有变化,它只在运行时才变为所要求的样子。
Apearance
外形
这个属性用来决定控件是否采用三维效果
ControlBox
控件按钮控件按钮
用来决定是否采用控件框的属性,仅在程序运行时才有效。
Font
字体
用来改变该窗体上显示信息的字体、字型和字号,它控制着直接在窗体上打印的文本显示。
Visible
可见性
该属性决定窗体是否可见,默认情况下是可见的。
错误地改变其值是很危险的,窗体会从眼前消失,
WindowState
窗体状态
指定窗体在运行时的三种状态:
正常、最小化、最大化。
Enabled
活动性
默认值为True,决定窗体能否被访问。
Left、Top、Height、Width
左边距、顶边距、高度、宽度
决定窗体在屏幕上的位置及窗体大小。
(2)设置属性的方法
1)在设计态通过属性窗口设置
直接在属性窗口中选择或输入既可。
2)在程序代码中改变属性值
代码中的格式为:
对象名.属性=属性值
例:
Form1.BackColor=RGB(255,0,0)
2. 窗体的常用方法
(1)Hide方法
用以隐藏MDIForm或Form对象,但不能使其卸载。
语法:
object.Hide
object所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。
如果省略object,则带有焦点的窗体就认为是该object。
说明:
♦ 隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。
用户将无法访问隐藏窗体上的控件,但是对于运行中的VisualBasic应用程序,或对于通过DDE与该应用程序通讯的进程及对于Timer控件的事件,隐藏窗体的控件仍然是可用的。
♦ 窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互。
♦ 如果调用Hide方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。
(2)Move方法
用以移动MDIForm、Form或控件。
语法:
object.Move left,top,width,height
Move方法的语法包含下列部分:
部分
描述
object
可选的。
一个对象表达式,其值为“应用于”列表中的一个对象。
如果省略object,带有焦点的窗体缺省为object。
left
必需的。
单精度值,指示object左边的水平坐标(x-轴)。
top
可选的。
单精度值,指示object顶边的垂直坐标(y-轴)。
Width
可选的。
单精度值,指示object新的宽度。
height
可选的。
单精度值,指示object新的高度。
说明:
只有left参数是必须的。
但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。
例如,如果不先指定left和top参数,则无法指定width参数。
任何没有指定的尾部的参数则保持不变。
(3)Print方法
在Immediate窗口中显示文本。
语法:
object.Print[outputlist]
Print方法的语法具有下列对象限定符和部分:
部分
描述
object
必需的。
对象表达式,其值为“应用于”列表中的对象。
outputlist
可选的。
要打印的表达式或表达式的列表。
如果省略,则打印一空白行。
outputlist参数具有以下语法和部分:
{Spc(n)|Tab(n)}expressioncharpos
部分
描述
Spc(n)
可选的。
用来在输出中插入空白字符,这里,n为要插入的空白字符数。
Tab(n)
可选的。
用来将插入点定位在绝对列号上,这里,n为列号。
使用无参数的Tab(n)将插入点定位在下一个打印区的起始位置。
expression
可选。
要打印的数值表达式或字符串表达式。
Charpos
可选。
指定下个字符的插入点。
使用分号(;)直接将插入点定位在上一个被显示的字符之后。
使用Tab(n)将插入点定位在绝对列号上。
使用无参数的Tab将插入点定位在下一个打印区的起始位置。
如果省略charpos,则在下一行打印下一字符。
说明:
♦ 可以用空白或分号来分隔多个表达式。
♦ 对系统指定的国别设置,用小数点分隔符将所有打印到Immediate视窗的数据正确格式化。
关键字要用适用于主应用程序的语言输出。
♦对于Boolean数据,或者打印True或者打印False。
根据主机应用程序的地区设置来翻译True和False关键字。
♦使用系统能识别的标准短日期格式书写Date数据。
当日期或时间部件丢失或为零时,只书写已提供的部件。
♦如果outputlist数据是Empty,则无内容可写。
但是,如果outputlist数据是Null,则输出Null。
在输出Null关键字时,要把关键字正确翻译出来。
♦要把错误数据作为Errorerrorcode输出。
在输出Error关键字时,要把关键字正确翻译出来。
♦如果在具有缺省显示空间的模块外使用此方法,则需要object。
例如,如果没有指定对象就在标准模块上调用此方法,则将导致错误发生,但是,如果在窗体模块上进行调用,则会在窗体上显示“outputlist”。
注意:
因为Print方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。
例如,像“W”这样的宽字母占据的宽度超过一固定列宽,而像"i"这样的窄字母占据的宽度则较小。
考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。
另外,也可以使用固定间距的字体(像Courier字体)来确保每一字符均只占一列。
(4)PrintFrom方法
用以将Form对象的图象逐位发送给打印机。
语法:
object.PrintForm
说明:
PrintForm将打印Form对象的全部可见对象和位图。
在绘制图形时,如果AutoRedraw属性为True,则在运行时PrintForm将打印Form对象或PictureBox控件上的图形。
♦PrintForm所使用的打印机是由操作系统的控制面板中的设置来决定。
(5)Refresh方法
强制全部重绘一个窗体或控件。
语法:
object.Refresh
说明:
在下列情况下使用Refresh方法:
♦在另一个窗体被加载时显示一个窗体的全部。
♦更新诸如FileListBox控件之类的文件系统列表框的内容。
♦更新Data控件的数据结构。
Refresh方法不能用于MDI窗体,但能用于MDI子窗体。
不能在Menu或Timer控件上使用Refresh方法。
通常,如果没有事件发生,窗体或控件的绘制是自动处理的。
但是,有些情况下希望窗体或控件立即更新。
例如,如果使用文件列表框、目录列表框或者驱动器列表框显示当前的目录结构状态,当目录结构发生变化时可以使用Refresh更新列表。
可以在Data控件上使用Refresh方法来打开或重新打开数据库(如果DatabaseName,ReadOnly,Exclusive或Connect属性的设置值发生改变),并能重建控件的Recordset属性内的dynaset。
(6)Show方法
用以显示MDIForm或Form对象。
语法:
object.Showstyle,ownerform
Show方法的语法包含下列部分:
部分
描述
object
可选的。
一个对象表达式,其值为“应用于”列表中的一个对象。
如果省略object,则与活动窗体模块关联的窗体缺省为object。
Style
可选的。
一个整数,它用以决定窗体是模式还是无模式。
如果style为0,则窗体是无模式的;如果style为1,则窗体是模式的。
Ownerform
可选的。
字符串表达式,指出部件所属的窗体被显示。
对于标准的VisualBasic窗体,使用关键字Me。
说明:
♦如果调用Show方法时指定的窗体没有装载,VisualBasic将自动装载该窗体。
♦当Show在显示无模式窗体时,随后遇到的代码则要执行。
当Show在显示模式窗体(modalform)时,则随后的代码直到该窗体被隐藏或卸载时才能执行。
♦当Show在显示模式窗体时,除了模式窗体中的对象之外不能进行输入(键盘或鼠标单击)。
对其它窗体进行输入前程序必须隐藏或卸载模式窗体(通常是处于响应用户某些操作状态)。
MDIForm不能是形式的。
♦在模式窗体显示时,虽然应用程序中的其它窗体失效,但其它应用程序不会失效。
♦应用程序的启动窗体在其Load事件调用后会自动出现。
下面的例子说明如何使用ownerform参数:
PrivateSubcmdShowResults_Click()
'显示模式窗体frmResults.
frmResults.ShowvbModal,Me
EndSub
(7)Cls方法
清除运行时Form或PictureBox所生成的图形和文本。
语法:
object.Cls
说明:
♦Cls将清除图形和打印语句在运行时所产生的文本和图形,而设计时在Form中使用Picture属性设置的背景位图和放置的控件不受Cls影响。
如果激活Cls之前AutoRedraw属性设置为False,调用时该属性设置为True,则放置在Form或PictureBox中的图形和文本也不受影响。
这就是说,通过对正在处理的对象的AutoRedraw属性进行操作,可以保持Form或PictureBox中的图形和文本。
♦调用Cls之后,object的CurrentX和CurrentY属性复位为0。
3.窗体的常用事件
(1) Load事件
这个事件发生在窗体被装入内存时,且发生在窗体出现在屏幕之前。
窗体出现之前,VisualBasic会看一看Load事件里有没有代码,如果有,那么它先执行这些代码,再让窗体出现在屏幕上。
(2)Click事件,Dblclick事件
这两个事件在单击或双击窗体时发生。
不过单击窗体里的控件时,窗体的Click事件并不会发生,VisualBasic会去看控件的Click事件里有没有代码。
(3)Activate(活动事件)与Deactivate(非活动事件)
显示多个窗体时,可以从一个窗体切换到另一个窗体。
每次激活一个窗体时,发生Activate事件,而前一个窗体发生Deactivate事件。
(4)Resize事件
在窗体被改变大小时会触发此事件。
4.窗体的控制
(1)装入或卸出窗体
要装入或卸出窗体,用Load 或Unload语句。
装入窗体:
LoadformName
卸出窗体:
UnLoadformName
FormName变量是要装入或卸出的窗体名。
Load语句只是把窗体装入内存,并不显示出来,要显示窗体可以使用窗体的Show方法。
(2)显示或隐藏窗体
要显示或隐藏窗体,用Show或Hide方法。
若尚未装入内存则先装入再显示。
显示窗体:
formName.showmode
隐藏窗体:
formName.hide
FormName变量是窗体名,可选变元mode为0(缺省值)时窗体为非模态,为1时窗体为模态。
模态窗体完全占有应用程序控制权,不允许切换到别的应用程序,除非关闭!
而非模态窗体则反之。
(3)END语句
END语句的功能是终止应用程序的执行,并从内存卸在所有窗体。
语法是:
END
2.3控件
1. 常用控件介绍
(1)标准控件一
TextBox文本框
Timer计时器
HscrollBar水平滚动条
ListBox列表框
Pointer指针
VScrollBar垂直滚动条
CheckBox复选框
Label标签
DirListBox文件夹列表框
PictureBox图片框
Line线条
DriveListBox驱动器列表框
ComboBox组合框
Shape图形
FileListBox文件列表框
OptionButton选项按钮
Image图象
Data数据控件
CommandButton命令按钮
Frame框架
OLE控件
(2) 常用控件的属性、方法和事件
公共属性
Name、Caption、Enabled、Fantsize、Height、Width、Index、Left、Top、TabStop
公共方法
Move、Refresh、Setfocus(设置焦点)
公共事件
Click、DblClick、LostFocus(失去焦点)
控件名称
属性、方法、事件
说明
TextBox 文本框
(用于接受用户在框内输入的内容)
Text属性
即用户从文本框输入的内容
PasswordChar属性
设置口令时用的掩码,如:
用*代替实际输入的内容
MaxLength属性
最大长度,缺省值是0,即可以输入任意个字符
MultiLine属性
为True时可以多行文本,为False时只能输入一行文本
Alignment属性
文本在框中的对齐方式:
0=左对齐,1=右对齐,2=居中
Chang事件
当框中的文本内容发生变化时触发该事件
LostFocus事件
当光标离开文本框时触发该事件
Label标签(用于在窗体上添加文字说明)
Alignment属性
Caption文本的对齐方式:
0=左对齐,1=右对齐,2=居中
WordWrap属性
为True时可根据标签大小自动换行
AutoSize属性
自动调节大小,为True时可根据文本大小自动调整标签大小,为False时标签大小不能改变,过长的文本被截掉
ListBox列表框
(用于列出可供用户选择的项目列表)
List属性
用于保存列表内容,访问:
[对象名].List(列表项序号)
列表项的序号由上到下依次为0、1、2、3……
ListCount属性
列表项数目
ListIndex属性
列表项索引,其值为最后选中的列表项序号,第一个为0,如果未选中任何表项,其值为-1。
Text属性
列表项正文,其值为最后选中的列表项的文本,它与
List(ListIndex)相同。
Columns属性
列表框显示形式取0时为一列显示所有行,其他值为多列。
Sort属性
排序属性,为True时,列表项按ASCII码排序,为False时,则不排序。
AddItem方法
添加列表项,使用格式:
[对象名.]AddItem<列表项文本>[,插入位置序号]
若不指定位置,则插入到列表末尾。
Clear方法
删除列表所有项目
RemoveItem方法
删除列表项,使用格式:
[对象名.]RemoveItem 删除项序号
PictureBox图片框
Image 图象(用来把图形放入程序里)
AutoSize/Stretch
属性
调整图片框以适应图象/调整图象以适应外框
Picture属性
决定控件中显示的图象
装入图形:
imgMyHand.Picture=LoadPicture(“c:
\graphics\hand.bmp”)
删除图形:
imgMyHand.Picture=LoadPicture(“”)
ComboBox组合框(将列表框和文本框结合在一起)
Style属性
外观属性:
取0时,系统创建一个带下拉式列表框的组合框;为1时,系统创建一个由文本框和列表框直接组合在一起的简单组合框,可以从列表框中选择,也可以直接在文本框中输入;为2时,系统创建一个没有文本框的下拉式列表框,单击列表框上的按钮才显示文本框,用户不能在文本框中输入,只能在列表框中选择。
Text属性
其值为用户从列表框中选定的文本或直接输入的文本。
AddItem方法
添加列表项,使用格式:
[对象名.]AddItem<列表项文本>[,插入位置序号]
若不指定位置,则插入到列表末尾。
Clear方法
删除列表所有项目
RemoveItem方法
删除列表项,使用格式:
[对象名.]RemoveItem 删除项序号
CommandButton
命令