vb第六章2.docx
- 文档编号:6496987
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:19
- 大小:878.23KB
vb第六章2.docx
《vb第六章2.docx》由会员分享,可在线阅读,更多相关《vb第六章2.docx(19页珍藏版)》请在冰豆网上搜索。
vb第六章2
在工具栏中的每个Button对象还有Style属性,该属性决定了按钮的行为特点。
在属性页的“样式”框中可以设定按钮的Style属性,表6-4列出了五种按钮样式以及它们的说明。
表6-4按钮样式及其说明
按钮
值
说明
一般按钮
(tbrDefault)
0
该按钮类似于一般的Command按钮,这类按钮用鼠标操作时,单击后按钮恢复原态。
例如常见的“新建”、“打开”按钮,都属于该样式的按钮。
开关按钮
(tbrCheck)
1
该类型的按钮被按下之后,并不弹起,保持按下的状态,若再被按一次,才恢复原态。
例如常见的“加粗”、“倾斜”按钮,都属于该样式的按钮。
编组按钮
(tbrButtonGroup)
2
编组按钮用于实现按钮之间的分组,相邻的编组按钮都属于同一组。
同组的按钮至多只允许一个按钮处于按下的状态,其功能与一组单选按钮完全相同。
例如常见的“两端对齐”、“居中”、“右对齐”按钮就是编组按钮。
分隔按钮
(tbrSeparator)
3
分隔按钮在工具栏中并不显示,只留出8个像素的空间,把它左右的按钮分隔开来。
工具栏中的按钮本来是紧挨排列的,使用分隔按钮可以让同类或同组的按钮并列排放而与邻近的组分开。
占位按钮
(tbrPlaceholder)
4
占位按钮在工具栏中也不显示,它仅仅起到占位的作用。
在占位按钮处可以安放其他控件(例如ComboBox或ListBox控件)。
菜单按钮
(tbrButtonDrop)
5
这类按钮由一个普通按钮和一个半宽的下三角按钮构成,当点击三角按钮时,便在其下面显示一个下拉菜单,用户可对此下拉菜单进行操作,完成其它任务或进行其它控制等。
㈥为工具栏编写代码
当用户单击按钮(占位按钮和分隔按钮除外)时,就会触发ToolBar控件的ButtonClick事件。
可以通过按钮的Index属性或Key属性来标识被单击的按钮。
在以下代码示例中,用到了一个数据控件“data1”,数据控件及其有关内容将在后面的章节中讲述。
ButtonClick事件的代码如下:
PrivateSubToolBar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
Case"Next"
data1.Recordset.MoveNext‘记录指针指向下一个记录
Case"Previous"
data1.Recordset.MovePrevious‘记录指针指向前一个记录
Case"Last"
data1.Recordset.MoveLast‘记录指针指向最后一个记录
Case"First"
data1.Recordset.MoveFirst‘记录指针指向第一个记录
EndSelect
EndSub
到此,我们已经建立了一个完整的工具栏。
㈦工具栏程序设计中的基本技巧
1.控制工具栏的隐藏和重现
在一个应用系统中往往不可能只有一个工具栏,像MicrosoftWord2000文字处理系统,它就有十几个工具栏。
但是,在应用中并没有把所有的工具栏都置于屏幕之上,以免破坏用户界面的整体均衡。
因此,在应用程序中对工具栏的控制技术是很重要的。
当一个窗体带有多个工具栏时,应该把最常用且最重要的工具栏作为缺省情况与窗体一起显示,而其它的工具栏虽同窗体一起加载,但并不一起显示。
在技术上实现上述要求很简单,即在设计好工具栏后,把该窗体缺省的工具栏对应的ToolBar控件的Visible属性设置为True,而其他工具栏对应的ToolBar控件的Visible属性设置为False。
这样,在窗体被加载并显示在屏幕上时,只有Visible属性等于True的ToolBar控件的工具栏显示的窗体内。
根据一般的经验,对工具栏的控制是在窗体的菜单上进行的。
为此都为菜单设计有“工具栏”专用的菜单项,在“工具栏”菜单的下一级菜单中列出了系统所有的工具栏,选择其中任何一个工具栏都会立刻把它显示在窗体内,再次选择此工具栏的菜单项,相应的工具栏便又消失了。
可见,有关工具栏的菜单项类似于一个开关性按钮。
在子菜单后面的程序编码的关键语句为:
ToolBar1.Visible=NotToolBar1.visible
当工具栏正在被显示时,ToolBar控件的Visible属性等于True;若再次选择工具栏菜单项后,其ToolBar控件的Visible属性在上面语句的作用下变成了False,于是工具栏被隐藏。
显然,再一次重复操作时,工具栏又会重现。
2.使工具栏按钮在不同状态下具有不同的图像
为了使工具栏上的按钮带有图像,当把ToolBar控件原来带有的ImageList属性与ImageList控件关联后,便可使工具栏按钮轻易地带有ImageList控件中的任何一个图像。
但我们知道,工具栏按钮在操作时有好几种状态:
正常的弹起状态、按下去的状态、禁用状态。
当希望工具栏按钮处于不同的状态显示不同的图像时,便可使用ToolBar控件的DisableImageList属性和HotImageList属性。
DisableImageList属性和HotImageList属性分别对应ToolBar控件通用属性页对话框中的“禁用图像列表”和“热图像列表”选项。
程序员正是通过此对话框进行ToolBar控件的这两个属性的设置。
“禁用图像列表”用于在工具栏按钮被禁用时将载入并显示的图像;而“热图像列表”用于在工具栏按钮被按下时将载入并显示的图像。
3.使工具栏按钮隐藏与重现
如果工具栏上的按钮很多,并且超出了工具栏的宽度,或者工具栏上有些按钮只在某个特定的情况下才使用,一般的情况下,这些按钮根本没有用。
因此在运行时,可以将这些按钮设置为隐藏状态。
当需要它们出现时,只需在程序中把它们的Visible属性改为True即可。
例如:
ToolBar1.Buttons
(2).Visible=False‘隐藏第二个按钮
4.使工具栏按钮禁用与可用
原则上,工具栏按钮可以让用户任意的选择使用,但是,按钮的有些功能是与系统的当前状态和用户的某些操作直接关联的。
例如,当前记录如果是第一个记录时,则不允许向前搜索,所以“Previous”按钮应该禁用;而如果当前记录为最后一个记录时,则不允许向后搜索,所以“Next”按钮应该禁用。
使工具栏上按钮禁用可使用以下语句:
ToolBar1.Buttons
(1).Enabled=False
使工具栏上按钮恢复使用的语句为:
ToolBar1.Buttons
(1).Enabled=True
二、状态栏的设计
大多数的Windows应用程序都有状态栏,状态栏主要用来显示应用程序的运行状态信息以及显示有关的提示信息。
一个状态栏实际上对应的是一个StatusBar控件,状态栏可位于窗体的顶部、底部或两侧,一般置于窗体的底部。
一个状态栏上可包含有若干个窗格,一个窗格对应的是一个Panel对象,一个状态栏最多可包含有十六个窗格,每个窗格可以用来显示一个图像或文本。
在应用程序中,状态栏主要有以下用途:
1.显示系统信息,如系统日期、时间等。
2.显示键盘的状态,如CapsLock、NumberLock等。
3.显示文件的信息,如文件的大小、创建的日期等。
4.显示数据库表的有关情况,如记录总数,以及当前记录在数据库中的位置等。
5.显示关于RichTextBox控件的文本和字体状态的信息。
㈠状态栏设计的步骤
状态栏的设计是由StatusBar控件来完成的。
与ToolBar控件一样,StatusBar控件是VisualBasic在它的标准版和企业般提供的专门设计状态栏的ActiveX控件。
使用SatusBar控件来创建状态栏时,首先也要把该控件添加到工具箱中。
不知您是否注意到,在设计工具栏时,当把ToolBar控件添加到工具箱时,实际上,ImageList控件、StatusBar控件也一起已经添加到工具箱中。
其余步骤如下:
1.在窗体中添加StatusBar控件,如果要显示图形,还需添加ImageList控件。
2.在属性页中添加窗格。
在StatusBar控件上单击鼠标右键,在弹出式菜单中选择属性。
进入属性页对话框后选择窗格选项,如图6-13所示,按“插入窗格”按钮,即可插入一个窗格。
3.在窗格属性页中输入相关的信息,例如:
文本、工具提示文本、关键字、样式或图片等。
4.重复以上第二、第三步即可创建多个窗格。
5.如果需要,编写相关的代码。
㈡Panel对象(窗格)某些属性的参数说明
⒈样式(Style属性):
窗格的样式属性是用来设置窗格的显示功能,如表6-5所示。
表6-5窗格的样式属性及其说明
常数
值
说明
SbrText
0
是样式的缺省值,用于显示文本信息或图像。
SbrCaps
1
当CapsLock键处于激活状态时,显示粗体字母CAPS,反之则变灰。
SbrNum
2
当NumberLock键处于激活状态时,显示粗体字母NUM,反之则变灰。
SbrIns
3
当Insert键处于激活状态时,显示粗体字母INS,反之则变灰。
SbrScrl
4
当ScrollLock键处于激活状态时,显示粗体字母SCRL,反之则变灰。
SbrTime
5
以系统格式显示当前时间。
SbrDate
6
以系统格式显示当前日期。
SbrKana
7
仅用在日文操作系统中。
⒉斜面(Bevel属性):
指定Panel对象是否具有凹入的斜面、凸出的斜面或不用斜面,如表6-6所示。
表6-6窗格的斜面属性及其说明
常数
值
说明
SbrNoBevel
0
窗格不显示斜面,这样文本就象显示在状态条上一样。
SbrInset
1
窗格凹入状态条。
sbrRaised
2
窗格凸出状态条。
⒊自动调整大小(AutoSize属性):
当父容器(Form控件或容器控件)的大小改变时,Panel对象本身的大小应该如何改变。
其设置如表6-7所示。
表6-7窗格的自动调整大小属性及其说明
常数
值
说明
SbrNoAutoSize
0
不会自动改变大小。
该窗格的宽度始终精确地由Width属性指定。
SbrSpring
1
当父窗体的大小发生改变,产生了多余的空间时,所有具有该设置的窗格将均分空间,并相应地变大。
而且这些窗格的宽度不会小于由MinWidth属性指定的宽度。
SbrContens
2
窗格的宽度与其内容匹配
㈢状态栏设计实例
例6-2在前面介绍的数据查询例子中,如果要求在状态栏中显示数据库表的表名、当前记录及总记录数、时间信息,同时,当鼠标指向时间窗格时,会出现当前的日期。
如图6-14所示。
⒈首先单击属性页的“插入窗格”按钮,插入第一个窗格,修改其中的属性:
自动调整大小(AutoSize)属性改为:
1-sbrSpring
插入第二个窗格,修改其中的属性:
自动调整大小(AutoSize)属性改为:
2-sbrContents
插入第三个窗格,修改其中的属性:
自动调整大小(AutoSize)属性改为:
2-sbrContents
样式(Style)属性改为:
5-sbrTime
按“确定”按钮退出“属性页”对话框。
⒉编写代码:
双击查询窗体,在窗体的Load事件中加入如下代码:
StatusBar1.Panels
(1).Text="表名:
"&data1.RecordSource
StatusBar1.Panels
(2).Text=CStr(data1.Recordset.AbsolutePosition)&"/"&_
CStr(data1.Recordset.RecordCount)
StatusBar1.Panels(3).ToolTipText=Year(Date)&"年"&Month(Date)&"月"&_
Day(Date)&"日"
双击工具栏,在工具栏的Click事件的代码的最后加入如下代码:
StatusBar1.Panels
(2).Text=CStr(data1.Recordset.AbsolutePosition)&"/"&_
CStr(data1.Recordset.RecordCount)
第五节对话框设计
在应用程序中,对话框主要应用在以下两个方面,一是提示用户提供应用程序继续执行所需要的数据;二是向用户显示信息。
例如,在VisualBasic中,用“打开文件”对话框来显示已存在的工程。
VisualBasic中的“关于”对话框也是一个如何使用对话框来显示信息的例子。
对话框不是模式就是无模式的。
所谓模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载)。
例如,如果一个对话框,在可以切换到其它窗体或对话框之前要求先单击“确定”或“取消”,则它就是模式的。
无模式的对话框允许在对话框与其他窗体之间转移焦点而不用关闭对话框。
无模式对话框较少使用,一般用于显示频繁使用的命令与信息。
VisualBasic的对话框设计主要有以下三种方法:
⑴使用函数设计的预定义对话框
⑵使用窗体设计的自定义对话框
⑶使用对话框控件设计的系统对话框
一、预定义对话框
使用对话框函数可以创建预定义对话框,这种方法不必考虑设计、装载或者显示对话框方面的问题,因此,具有操作简单及快速的特点。
然而,控件在其外观上要受到限制。
预定义的对话框总是模式的。
VisualBasic提供的预定义对话框有两种:
信息对话框和输入对话框。
分别使用MsgBox函数和InputBox函数。
㈠信息对话框
在应用程序中,有时需要显示一些简单的信息如警告或错误信息等,此时可以利用“信息对话框”来显示这些内容。
当用户接收到信息后,可以单击按钮来关闭对话框,并返回单击的按钮值。
1.函数格式
MsgBox(
2.说明
⑴prompt:
指定在对话框中出现的文本,即提示信息。
在提示信息中使用硬回车符(chr(13))可以使文本换行。
对话框的高度和宽度随着提示信息的增加而增加,最多可有1024个字符。
⑵buttons:
指定对话框中出现的按钮和图标,一般有三个参数,它们之间用“+”来连接。
具体如表6-8所示:
表6-8MsgBox函数的参数及说明
常数
值
描述
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
0
1
2
3
4
5
只显示确定按钮
显示确定及取消按钮
显示终止、重试及忽略按钮
显示是、否及取消按钮
显示是及否按钮
显示重试及取消按钮
vbCritical
vbQuestion
vbExclamation
vbInformation
16
32
48
64
显示停止图标
显示问号(?
)图标
显示感叹号(!
)图标
显示信息图标
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
vbDefaultButton4
0
256
512
768
第一个按钮是缺省值
第二个按钮是缺省值
第三个按钮是缺省值
第四个按钮是缺省值
⑶title:
指定对话框的标题
⑷MsgBox函数返回值指明了在对话框中选择哪一个按钮。
函数返回值及其说明如表6-9所示。
表6-9MsgBox函数返回值
常数
值
按钮
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
1
2
3
4
5
6
7
确定
取消
终止
重试
忽略
是
否
3.应用举例
例6-3在窗体中增加一个功能,使得当单击窗体的关闭按钮时,弹出一个对话框以确定是否退出程序。
只需在窗体的Unload事件代码中增加如下代码:
PrivateSubForm_Unload(CancelAsInteger)
Fanhuizhi=MsgBox(“是否退出?
”,4+32+256,”请确认”)
IfFanhuizhi=6then‘或写成Fanhuizhi=vbYes
Cancel=0
Else
Cancel=1
Endif
EndSub
说明:
⑴“4+32+256”:
表示选择值为4的按钮(“是”和“否”按钮),值为32的图标(“问号”图标)以及值为256的默认按钮(默认按钮为第二个按钮)。
⑵参数Cancel是一个整数,用来确定窗体是否从屏幕上删除。
如果Cancel为0,则窗体被删除。
将Cancel设为非0值,则窗体不被删除。
㈡输入对话框
在应用程序中,有时需要用户提供一些简单的文字或数字信息,例如在库存管理系统中,当我们要查询某种产品的库存时,首先要输入该产品的编号。
VisualBasic提供的“输入对话框”可以满足此类输入的基本要求。
1.函数格式
InputBox(prompt[,title][,default])
2.说明
⑴prompt:
指定在对话框中出现的文本,即提示信息。
在提示信息中使用硬回车符(chr(13))可以使文本换行。
对话框的高度和宽度随着提示信息的增加而增加,最多可有1024个字符。
⑵title:
指定对话框的标题。
⑶default:
提供默认文本显示在文本框中,在没有其它输入时作为缺省值。
如果省略default,则文本框为空。
3.应用举例
例6-4在一个库存查询窗体(qform)中,当单击“定位查找”按钮时,弹出输入对话框,要求输入产品编号,然后按产品编号找出相应的记录,如图6-15所示。
只需在“定位查找”按钮的Click事件中增加如下代码:
PrivateSubCommand1_Click()
a=InputBox("请输入产品编号:
","输入对话框","")
data1.Recordset.MoveFirst‘指针指向第一个记录
DoWhiledata1.Recordset.EOF=False
Ifdata1.Recordset.Fields("产品编号")=aThen
ExitDo
EndIf
data1.Recordset.MoveNext‘指针指向下一个记录
Loop
EndSub
二、自定义对话框
预定义对话框是利用系统函数定义的,比较简单,不一定能满足应用程序的需要。
而自定义对话框的设计比较灵活,可以按应用程序的要求来设置。
自定义对话框就是用户所创建的含有控件的窗体,这些控件包括标签、命令按钮、选取按钮和文本框等,它们可以为应用程序接收信息。
自定义对话框窗体可以是模式,也可以是非模式的,显示模式的定义可以使用窗体的Show方法来定义。
其语法如下:
窗体控件.Show[Style[,owner]]
说明:
⒈Style:
设置显示模式。
缺省时,表示无模式。
其取值如下所示:
·1(常量为Vbmodal):
模式窗体
·0(常量为Vbmodaless):
无模式窗体
⒉Owner:
指定窗体的父子关系。
表示该对话框窗体隶属于哪一个窗体。
㈠自定义对话框设计的步骤
1.从“工程”菜单中选取“添加窗体”,在工程中添加一现存的窗体。
2.根据需要自定义窗体的外观。
3.在代码窗口中编写事件代码。
㈡自定义对话框的应用举例
例6-5在上一例中数据查询窗体(qForm)中,对话框是用函数生成的,单击对话框的“确定”按钮后,对话框将被关闭,不能连续查询。
如果还想继续查询,还需单击“继续查找”按钮。
在本例中,对话框是自定义的,可以连续查询,直到单击“关闭”按钮来关闭对话框为止。
1、首先添加一个窗体,修改其属性如下:
名称(Name属性)改为:
InputForm
标题(Caption属性)改为:
“输入对话框”
最大化按钮(MaxButton属性):
False
最小化按钮(MinButton属性):
False
2、在窗体上添加一个标签,一个文本框,两个命令按钮,修改其属性如下:
标签(Label1)的标题(Caption属性)改为:
“请输入产品编号”
文本框(Text1)的值(text属性)改为空
命令按钮(Command1,Command2)的标题(Caption属性)分别改为:
“确定”和“关闭”
3、编写事件代码
⑴“定位查找”命令按钮的Click事件代码:
PrivateSubCommand1_Click()
InputForm.ShowModal
EndSub
⑵“确定”命令按钮的Click事件代码:
PrivateSubCommand1_Click()
qForm.data1.Recordset.MoveFirst
DoWhileqForm.data1.Recordset.EOF=False
IfqForm.data1.Recordset.Fields("产品编号")=Trim(Text1.Text)Then
ExitDo
EndIf
qForm.data1.Recordset.MoveNext
Loop
qForm.Refresh
EndSub
⑶“关闭”命令按钮的Click事件代码:
PrivateSubCommand2_Click()
Unloadme
EndSub
三、系统对话框
VisualBasic的“公共对话框”(CommonDialog)控件为用户提供了一组标准的系统对话框,可以使用这些对话框进行打开或保存文件、设置打印选项、选择各种颜色以及选择字体等操作。
另外还可以通过调用Windows的帮助引擎来显示应用程序的帮助。
㈠系统对话框的使用步骤
⒈添加“公共对话框”控件
“公共对话框”控件是VisualBasic6.0专业版和企业版所特有的ActiveX控件,名称为“MicrosoftCommonDialogControl6.0”,所以首先应该将该控件添加到工具箱中。
⒉将“公共对话框”控件添加到窗体。
⒊利用“属性页”对话框设置控件属性,包括“打开/另存为”、“颜色”、“字体”、“打印”和“帮助”等五个方面的属性。
用右键单击“公共对话框”控件,在弹出菜单中选择属性菜单项即可进入“属性页对话框”如图6-16所示。
⒋各种对话框的使用:
使用CommonDialog控件的方法来显示对话框。
·使用“打开”对话框:
控件名.ShowOpen
·使用“另存为”对话框:
控件名.ShowSave
·使用“颜色”对话框:
控件名.ShowColor
·使用“字体”对话框:
控件名.ShowFont
·使用“打印”对话框:
控件名.ShowPrinter
㈡“打开”对话框属性及其说明
“打开”对话框可以用来指定欲打开文件所在的驱动器、文件夹及其文件名、文件扩展名,如图6-17所示。
“打开”对话框具有以下属性,这些属性可以在属性页中进行设置。
⒈对话框标题(DailogTitle):
用于设置对话框的标题,缺省值为“打开”。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 第六