Visual Basic 语 言 程 序 设 计第 8章 对话框程序设计
8.1 概 述
8.1.1 对话框的分类
在 VB应用程序中,对话框分为 3种类型:预定义对话框、通用对话框和自定义对话框
(1)预定义对话框也称预制对话框,是由系统提供的。 VB提供了两种预定义对话框,即输入框和信息框 (或消息框 ),前者用
InputBox函数建立,后者用 MsgBox函数建立,具体用法参见第 4
章。
(2)通用对话框是一种控件,用这种控件可以设计较为复杂的对话框。
(3)自定义对话框也称定制对话框,这种对话框由用户根据自己的需要进行定义。输入框和信息框尽管很容易建立,但在应用上有一定的限制,很多情况下无法满足需要,用户可以根据具体需要建立自己的对话框。本章将介绍后两种对话框,即通用对话框和自定义对话框。
Visual Basic 语 言 程 序 设 计
8.1.2 对话框的特点
如前所述,对话框与窗体是类似的,但它是一种特殊的窗体,具有区别于一般窗体的不同的属性,主要表现在以下几个方面:
(1)在一般情况下,用户没有必要改变对话框的大小,因此其边框是固定的。
(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框。
(3)在对话框中不能有最大化按钮 (Max Button)和最小化按钮 (Min
Button),以免被意外地扩大或缩成图标。
(4)对话框不是应用程序的主要工作区,只是临时使用,使用后就必须关闭。
对话框中控件的属性可以在设计阶段设置,但在有些情况下,必须在运行时
(即在代码中 )设置控件的属性,因为某些属性设置取决于程序中的条件判断。
VB的预定义对话框体现了前面 4个特点,在设计自定义对话框时,也必须考虑到上述特点。
Visual Basic 语 言 程 序 设 计
8.2 通用对话框
当要定义的对话框较为复杂时,将会花费较多的时间和精力。为此,VB提供了通用对话框控件,用它可以定义较为复杂的对话框。
Visual Basic 语 言 程 序 设 计
8.2.1 通用对话框控件
通用对话框是一种 ActiveX控件,它随同 VB提供给程序设计人员。在一般情况下,启动 VB后,在工具箱中没有通用对话框控件。为了把通用对话框控件加到工具箱中,其操作步骤如下:
(1)执行,工程,菜单中的,部件,命令,打开,部件,对话框。
(2)在对话框中,选择,控件,选项卡,然后在控件列表框中,选择
,Microsoft Common Dialog Control 6.0”,如图 8.1所示。
(3)单击,确定,按钮,通用对话框立即被加到工具箱中,如图 8.2所示。
通用对话框的默认名称 (Name属性 )为 CommonDialogX(X为 1,2,3… )。
通用对话框控件为程序设计人员提供了几种不同类型的对话框,利用这些对话框,可以获取所需要的信息,打开文件、将文件存盘、选择颜色、
选择字体、打印、帮助。这些对话框与 Windows本身及许多应用程序具有相同的风格。对话框的类型可以通过 Action属性设置,也可以用相应的方法设置。
Visual Basic 语 言 程 序 设 计
8.2.2 通用对话框的属性与方法
1.通用对话框的基本属性
(1)Action属性
该属性直接决定打开何种类型的对话框。
1— Open:打开文件对话框;
2— Save As:另存为对话框;
3— Color:颜色对话框;
4— Font:字体对话框;
5— Printer:打印机对话框;
6— Help:帮助对话框。
该属性不能在属性窗口中设置,只能在程序中赋值,用于调出相应的对话框。
(2)DialogTitle属性
该属性用来设置对话框的标题,可以是任意字符串。在默认情况下,,打开,对话框的标题是,打开,,,另存为,对话框的标题是,另存为,。
通用对话框的属性设置不仅可以在属性窗口中设置,也可以在属性页对话框中设置。打开属性页对话框的方法是:在窗体上的通用对话框控件上单击右键,在弹出的快捷菜单中,选择,属性,命令,如图 8.3所示。通用对话框控件属性页对话框中,有 5个选项卡,
对不同类型的对话框设置属性,就要选择不同的选项卡。例如,要对字体对话框进行设置,就选定,字体,选项卡。
Visual Basic 语 言 程 序 设 计
2.通用对话框的方法
为了打开通用对话框,VB还提供了一组方法,用来打开通用对话框。这些方法是:
ShowOpen:打开文件对话框;
ShowSave:打开另存为对话框;
ShowColor:选择颜色对话框;
ShowFont:选择字体对话框;
ShowPrinter:打开打印对话框;
ShowHelp:调出帮助对话框。
Visual Basic 语 言 程 序 设 计表 8.1 对话框类型
对话框类型 Action属性值 方法
打开 1 ShowOpen
另存为 ShowSave
颜色 3 ShowColor
字体 4 ShowFont
打印 5
ShowPrinter
帮助 6 ShowHelp
Visual Basic 语 言 程 序 设 计
8.3 通用对话框的使用
本节介绍打开对话框、另存为对话框、颜色对话框、字体对话框、打印机对话框和帮助对话框的使用方法。
Visual Basic 语 言 程 序 设 计
8.3.1 打开 (Open)对话框
1.文件对话框的结构
文件对话框分为两种,即打开 (Open)文件对话框和另存为 (Save
As)文件对话框。通用对话框的重要用途之一,就是从用户那里获得文件名信息。打开文件对话框可以让用户指定一个文件,由程序来实现;而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件。从结构上来说,,打开,和,另存为,对话框是类似的。图 8.4所示的是一个,加载图片,对话框,它属于,打开,对话框,图中各部分的作用如下:
(1)对话框标题:通用对话框的标题,通过 DialogTitle属性设置。
(2)文件夹:用来显示文件夹。单击右端的箭头,将显示驱动器和文件夹的列表,可以在该列表中选择所需要的文件夹。
(3)选择文件夹级别:单击一次该按钮回退一个文件夹级别。
Visual Basic 语 言 程 序 设 计
1.文件对话框的结构
(4)新文件夹:用来建立新文件夹。
(5)文件列表模式:选择是否以列表方式显示文件和文件夹。
(6)文件细节:显示文件的详细情况,包括文件名、文件大小、建立
(修改 )日期、时间及属性等。
(7)文件列表:在该区域显示的是,文件夹,栏内文件夹的子目录,
列出了准备使用的文件或文件夹,单击其中的文件名将选择该文件,
所选择的文件名将在,文件名,栏 (见 (9))内显示出来。如果当前显示的文件列表中没有所需要的文件,可双击其中的文件夹显示下一级的文件或文件夹。
(8)文件类型:指定要打开或要保存的文件的类型,该类型由通用对话框的 Filter属性确定。
(9)文件名:所选择的或输入的文件名。用,打开,或,另存为,对话框都可以指定一个文件名,所指定的文件名在该栏内显示,单击
,打开,或,另存为,按钮后,将以该文件名打开或保存文件。
在对话框的右下部还有两个按钮,即,打开,和,取消,。在,另存为,对话框中,,打开,按钮用,保存,取代。
Visual Basic 语 言 程 序 设 计
2.文件对话框的属性
打开 (Open)和另存为 (Save As)对话框共同的属性如下:
(1)FileName属性
用来设置或返回要打开或保存的文件的路径及文件名。
(2)FileTitle属性
用来指定文件对话框中所选择的文件名 (不包括路径 )。
(3)Filter属性
用来指定在对话框中显示的文件类型。
,文件类型,的下拉列表中选择。 Filter的属性值由一对或多对文本字符串组成,每对字符串用管道符,|”隔开,在,|”前面的部分称为描述符,后面的部分一般为通配符和文件扩展名,
称为,过滤器,,如 *.txt等,各对字符串之间也用管道符隔开。
Visual Basic 语 言 程 序 设 计
2.文件对话框的属性
格式:[窗体,]对话框名,Filter=描述符 1|过滤器 1|描述符 2|过滤器 2……
说明:如果省略窗体,则为当前窗体。
例如,CommonDialog1.Filter=Word Files|(*.DOC)
执行该语句后,在文件列表栏内将要显示扩展名为,DOC的文件。
再如,CommonDialog1.Filter=All Files(*.*)|Word
Files|(*.DOC)|Text Files|(*.TXT)执行该语句后,
可以在文件类型栏内通过下拉列表选择要显示的文件类型。
Visual Basic 语 言 程 序 设 计
2.文件对话框的属性
(4)FilterIndex属性
用来指定默认的过滤器,其设置值为一整数。
例如,CommonDialog.FilterIndex=3
(5)InitDir属性
该属性用来指定打开对话框中的初始化目录,若显示当前目录,
则该属性不需要设置。
(6)DefaultEXT属性
设置对话框中默认文件类型,即扩展名。
(7)Flags属性
为文件对话框设置选择开关,用来控制对话框的外观。
格式:对象,Flags[ =值]
说明:,对象,为通用对话框的名称;,值,是一个整数。文件对话框 Flags属性值各种取值的意义如表 8.2所示。
Visual Basic 语 言 程 序 设 计表 8.2 Flags属性取值
值 符号常量 作 用
1 vbOFNReadOnly 在对话框中显示,只读检查,(Read Only Check)复选框
2 vbOFNOverwritePrompt 如果用磁盘上已有的文件名保存文件,则显示一个信息框,询问用户是否覆盖已有文件
4 vbOFNHideReadOnly 取消,只读检查,复选框
8 vbOFNNoChangeDir 保留当前目录
16 vbOFNShowHelp 显示一个,Help”按钮
256 vbOFNNoValidate 允许在文件中有无效字符
512 vbOFNAllowMultiselect 允许用户选择多个文件
Visual Basic 语 言 程 序 设 计
2.文件对话框的属性
(8)MaxFileSize属性
设定 FileName属性的最大长度,以字节为单位。取值范围为 1~2048,默认为 256。
(9)HelpCommand属性
该属性用于返回或设置所需要的在线 Help帮助类型。请参阅 VB帮助系统。
(10)CancelError属性
该属性决定在用户按下,取消,按钮时,是否产生错误信息。
Ture:按下,取消,按钮,出现错误警告。
False(缺省 ):按下,取消,按钮,不会出现错误警告。
指定 Help的类型,可以取以下几种值:
1— 显示一个特定上下文的 Help屏幕,该上下文应先在通用对话框控件的
HelpContext属性中定义。
2— 通知 Help应用程序,不再需要指定的 Help文件。
3— 显示一个帮助文件的索引屏幕。
4— 显示标准的,如何使用帮助,窗口。
5— 当 Help文件有多个索引时,该设置使得用 HelpContext属性定义的索引成为当前索引。
257— 显示关键词窗口,关键词必须在 HelpKey属性中定义。
Visual Basic 语 言 程 序 设 计
2.文件对话框的属性
(11)HelpContext属性
用来确定 HelpID的内容,与 HelpCommand属性一起使用,指定显示的 Help主题。
(12)HelpFile和 HelpKey属性
分别用来指定 Help应用程序的 Help文件名和 Help主题能够识别的名字。
通用对话框类似于计时器控件,在设计应用程序时,可以把它放在窗体中的任何位置,其大小不能改变,程序运行时不出现在窗体上。
【 例 8.1】 编写一个应用程序,选择,编辑图片,命令按钮,可以弹出,打开,对话框,当选定一个 BMP位图文件,并且单击
,确定,按钮后,能调出 Windows98的画图程序编辑图片。
3.Shell函数
格式,Shell(命令字符串[窗口类型] )
功能:调用各种应用程序。即在 DOS和 Windows下运行的可执行程序,
也可以调用 VB应用程序。
Visual Basic 语 言 程 序 设 计说明:
(1)命令字符串:是要执行的应用程序名,包括路径,它必须是可执行文件 (.COM,.EXE,.BAT)。
(2)窗口类型:表示执行应用程序的窗口大小,
取 1~ 4,6的整数值,一般取 1。
例如,调用 Windows的计算器。
I=Shell("c:\ windows\ cale.exe")
【 例 8.2】 编写一个应用程序,选择,浏览图片,命令按钮,可以弹出,打开,对话框,从中选定一个 BMP位图文件,单击,确定,按钮后,能在左边的图片框
(PictureBox)中显示图片。
Visual Basic 语 言 程 序 设 计
8.8 打开对话框应用示例
8.3.2 另存为 (Save As)对话框另存为对话框是当 Action为 2时的通用对话框。
8.3.3 颜色 (Color)对话框颜色对话框是当 Action为 3时的通用对话框。
Visual Basic 语 言 程 序 设 计表 8.3 Flags属性值的含义 (颜色对话框 )
值 符号常量 作 用
1 vbCCRGBInit 使得 Color属性定义的颜色在首次显示对话框时随着显示出来
2 vbCCFullOpen 打开完整对话框,
包括,用户自定义颜色,窗口
4 vbCCPreventFullOpen 禁止选择,规定自定义颜色,按钮
8 vbCCShowHelp 显示一个,Help”按钮
【 例 8.3】 编写一个应用程序,用颜色对话框,
改变窗体背景的颜色和标签的颜色。
Visual Basic 语 言 程 序 设 计
8.3.4 字体 (Font)对话框
字体对话框是当 Action为 4时的通用对话框,
如图 8.12所示。字体对话框用来设置字体。
在 VB中,字体通过 Font对话框或字体属性设置。利用通用对话框控件,可以建立一个字体对话框,并可在该对话框中设置应用程序所需要的字体。
Visual Basic 语 言 程 序 设 计
8.3.4 字体 (Font)对话框
字体对话框,除了基本属性以外,还有特殊属性:
(1)Color属性
该属性值表示字体的颜色,当用户在,颜色,列表中,选择某种颜色时,Color属性值即为所选颜色值。
(2)FontName属性
该属性为用户所定字体的名称。
(3)FontSize属性
该属性为用户所定字体的大小。
(4)FontBold,FontItalic,FontStrikeThru,FontUnderline属性
这些属性均为逻辑型,即其值是 True或 False。他们可以在字体对话框中选择,也可以通过程序代码赋值。
(5)Max和 Min属性
这两个属性设定用户在字体对话框中所能选择的最小值和最大值,即用户只能在此范围之内选择字体大小,该属性以点 (Point)为单位 (一个点的高度是 1/ 72英寸 )量度。在默认情况下,字体大小的范围为 1~2048个点,必须把 Flags属性值设置为 8192。
Font对话框可以通过 ShowFont方法或 Action属性 (=4)建立,见例 8.4。
(6)Flags属性
Flags属性的取值如表 8.4所示。
Visual Basic 语 言 程 序 设 计表 8.4 Flags属性值的含义 (字体对话框 )
属性值 符号常量 作 用
1 cdlCFScreenFonts 只显示屏幕字体
2 cdlCPrinterFonts 只列出打印机字体
3 cdlCFBoth 列出打印机和屏幕字体
4 cdlCFShowHelp 显示一个 Help按钮
256 cdlCFEffects 显示,效果,框:删除线、
下划线和颜色
8192 cdlCLimitSize 只显示在 Max属性和 Min属性指定范围内的字体大小
【 例 8.4】 用字体对话框设置文本框中显示的字体。
Visual Basic 语 言 程 序 设 计
8.3.5 打印 (Printer)对话框
打印对话框是当 Action属性为 5时的通用对话框,
是一个标准的打印对话框窗口界面,如图 8.16所示,打印对话框并不能处理打印工作,仅仅是一个供用户选择打印参数的界面。所选参数存于各属性中,再由编程来处理打印操作。
用打印对话框可以选择要使用的打印机,并可为打印处理指定相应的选项,如打印范围、数量等。
打印对话框除具有基本属性外,还有特殊属性:
Visual Basic 语 言 程 序 设 计特殊属性:
(1)Copies属性
指定要打印的文档的拷贝数。该属性值是整型值。
(2)FromPage和 ToPage属性
指定要打印文档的页范围。如果要使用这两个属性,
必须把 Flags属性设置 2。
(3)Max和 Min属性
用来限制 FromPage和 ToPage的范围,其中 Min指定所允许起始页码,Max指定所允许的最后页码。
打印对话框的属性可以通过属性页进行设置,如图
8.17所示。其属性的含义如上面所述。
【 例 8.5】 建立打印对话框。
Visual Basic 语 言 程 序 设 计
8.3.6 帮助 (Help)对话框
帮助对话框除了基本属性外,还有特殊属性:
(1)HelpCommand属性 (帮助命令 )
该属性用于返回或设置所需要的在线 Help帮助类型。请参阅帮助系统。
(2)HelpFile属性 (帮助文件 )
该属性用于指定 Help文件的路径及文件名称。即找到帮助文件,再从文件中找到相应内容,显示在 Help窗口中。
(3)HelpKey属性 (帮助键 )
该属性用于指定帮助信息的内容,帮助窗口中显示由该帮助关键字指定的帮助信息。
Visual Basic 语 言 程 序 设 计帮助 (Help)对话框
例如,如果想在标准 Help窗口中显示
VB.HLP的 Common Dialog Control语句的帮助,那么应按如下要求设置属性:
CommonDialog1.HelpCommand = vbHelpContents
CommonDialog1.HelpFile ="VB.HLP"
CommonDialog1.HelpKey="Common Dialog
Control"
CommonDialog1.Action = 6
Visual Basic 语 言 程 序 设 计帮助 (Help)对话框
(4)HelpContext属性 (帮助上下文 )
返回或设置所需要的 HelpTopic的 Context ID,一般与
HelpCommand属性 (设置为 vbHelpContents)一起使用,
指定要显示的 HelpTopic。
【 例 8.6】 编写一个应用程序,当选择,显示记事本帮助,按钮时,就弹出帮助窗口。
【 例 8.7】 编写一个简单的文本编辑器程序,用通用对话框实现:打开、另存为、颜色、字体、
打印和帮助功能。
Visual Basic 语 言 程 序 设 计
8.4 自定义对话框
8.4.1 自定义对话框的外观
表 8.6 自定义对话框属性设置
属 性 属性值 说 明
BorderStyle 1 边框类型为固定的单个边框,防止对话框在运行时被改变尺寸
ControlBox False 取消控制菜单框
MaxButton False 取消最大化按钮,防止对话框在运行时被最大化
MinButton False 取消最小化按钮,防止对话框在运行时被最小化
Visual Basic 语 言 程 序 设 计
8.4.2 自定义对话框的规则
一般来说,对话框必须至少包含一个退出该对话框的命令按钮。通常用两个命令按钮:其中一个按钮开始执行动作,
而另一个按钮关闭该对话框而不做任何改变。典型情况是,
这两个按钮的 Caption属性设置为,确定,与,取消,。
在这个方案中:
,确定,命令按钮的 Default属性设置为 True;
,取消,命令按钮的 Cancel属性设置为 True。
,确定,与,取消,是最常用的按钮,其他按钮标题组合也可以使用。
【 例 8.8】 某大学有若干个系,分两个学院,设计一个自定义对话框,当用户选择某一个学院并输入系名后,应显示出该系的简介。