admin 管理员组

文章数量: 887021


2024年1月23日发(作者:border小说)

第六章

对话框的设计

6.1 预定义对话框

在应用程序中添加对话框最容易的方法是使用预定义对话框,因为不必考虑设计、装载或者显示对话框方面的问题。然而,其控件在外观上要受到限制。预定义的对话框总是模式的。

表6.1中列出了在Visual Basic应用程序中添加预定义对话框时所使用的函数。

6.1.1 输入框InputBox函数用来产生要求输入数据的输入框;在输入框中显示提示文本、文本框和按钮;等待用户的输入或按下按钮,并返回用户在文本框中输入的内容。

如图6.1所示的输入框就是使用InputBox函数所产生的,用来提示用户输入要在窗体上显示的内容。

生成该输入框的代码如下所示:

Word=InputBox(“请输入要在窗体中显示的内容:”、“输入”)

只需再做一点工作就可以将上面的文本输入框使用到程序中了。

实例6.1使用输入框。

在窗体中放置一个按钮控件,并设置它的Caption属性的值为“输入要显示的内容”,双击这个按钮控件打开它的代码窗口,编写如下代码:

Private Sub Commandl_Click()

word=InputBox(“请输入要在窗体中显示的内容:”,“输入”)

Print word

End Sub

在该程序中,InputBox函数将产生一个输入框,并且该函数包含有两个参数,其中第一个参数是指输入框中的用户提示字符串,第二个参数是指输入框的标题:

InputBox(prompt[,title][,default][,spos][,ypos][,helpfile,context])

InputBox函数语法中的各参数的含义如表6.2所示。

如果同时提供了Helpfile与Context,用户可以按F1键来查看与Context相应的帮助主题。

如果用户单击输入框中的【确定】按钮,则InputBox函数返回文本框中的内容。如果用户单击【取消】按钮,则此函数返回一个长度为零的字符串(“”)。

如果要省略某些位置参数,则必须加入相应的逗号分界符。例如,要指定实例6.1中输入框的位置,而缺省输入框的初始值,则语句如下:

word =InputBox(“请输入要在窗体中显示的内容:”,“输入”, 200,200)。

6.1.2 消息框MsgBox函数用来产生一个消息框。消息框用来显示简短的消息,并要求用户作出一定的响应。例如,报告操作错误或向用户提示信息。看完这些消息以后,可选取一个按钮来关闭该对话框。

创建该消息框的代码如下:

Msg=MsgBox(您没有在文本框中输入任何内容“48”提示)。

这里我们通过编写一个程序,来讲解如何在程序中使用MsgBox函数创建消息框。

实例6.2使用消息框

这个程序包含一个文本框和一个按钮,在文本框中输入内容后单击按钮,则所输入的内容就显示在窗体中;如果在文本框中没有输入任何内容,则单击按钮后会弹出一个提示框,告诉用户没有在文本框中输入任何内容,如图6.4所示。下面是编制这个小程序的具体过程。

首先,在窗体中放置一个文本框控件,设置它的Text属性的值为空,再放置一个按钮控件,设置它的Caption属性的值为“确定”.文本框与按钮的名称均使用系统默认的名称。双击按钮控件,打开代码窗口,为按钮的Click事件编写如下代码:

Private Sub Commandl_Click()

If =“Then

Msg = MsgBox(“您没有在文本框中输入任何内容”,48,“提示”)

Else

Print

End If

End Sub

在上面的程序段中,使用了一个分支结构来判断文本框中是否输入了内容。运行该程序,直接单击【确定】按钮,则弹出如图5.4所示的消息枢。再次运行程序,在文本框中输入内容后,单击【确定】按钮,则不会出现消息框,且在窗体中显示用户输入的内容。

MsgBox函数的一般格式如下:

InputBox(prompt][,buttons][,title][,helpfile,context])

各参数的含义如表6.3所示。

通过为Buttons参数指定不同的值,消息框会呈现出不同样式。所谓消息框的样式是指其上图标与按钮的不同组合。在上例中指定Buttons参数的值为48.该值下的消息框上显示一个惊叹图标和一个确定按钮。

表6.4中列出了Buttons参数的设置值及其对应的消息框的样式。

第一组值(0~5)描述了对话框中显示的按钮的类型与数目;第二组值(17,32,48,74)描述了图标的样式:第三组值(0,257,512)说明哪一个按钮是缺省值:而第四组值(0,4097)则决定消息框的强制返回性。将这些数字相加以生成buttons参数值的时候,只能由每组值取用一个数字。

例如,要使实例6.2的消息框中显示【确定】和【取消】按钮,并且【取消】按钮是缺省值,同时在消息框中显示一个信息图标。buttons参数的值应该是321(1+257+74)。

在实例6.2中,Msg = MsgBox(您没有在文本框中输入任何内容“,48,提示”)赋值语句将MsgBox函数的值赋给变量函数的返回值是根据用户单击哪个按钮而定的。如表6.5所示的是按钮与对应的MsgBox函数的返回值。

在关闭应用程序时,系统常常会弹出一个消息框来提示用户是否真的要退出程序,如果户单击【是】按钮,则程序退出,如果用户单击的是【否】按钮,则程序不退出。这里,我们编写一个程序来模拟上述的情形。

实例6.3使用消息框2。

在窗体中放置一个按钮控件,设置其Caption属性的值为“退出”,并采用系统默认的名称。双击按钮控件打开【代码】窗口,将下列代码添加到Command1_Click事件过程中:

Private Sub Commandl_Click()

Msg=MsgBox(“是否真的退出程序”,37,“提示”)

If msg=7 Then End

End Sub

在该段代码中,使用了一个If语句来判断用户的选择,如果用户选择了【是】按钮,则执行End语句,否则不执行任何语句。

运行该程序,单击窗体中的【退出】按钮,则弹出一个消息框询问用户是否退出程序。单击【否】按钮,则消息框消失,窗体并不退出。再次运行该程序,单击【是】按钮,则消息框消失,窗体也随着被关闭。

6.2 通用对话框

在应用程序中,经常需要用到打开和保存文件、选择颜色和字体等对话框,它们都是Windows的通用对话框。在VB中可以使用通用对话框控件来创建这些通用对话框,而不必费很大的劲去自己编写它们。

利用通用对话框控件可以创建如下通用对话框:

【打开】对话框

【保存】对话框

【颜色】对话框

【字体】对话框

【打印】对话框

注意:通用对话框控件在Visual Basic和Microsoft Windows动态链接库例程之间提供了接口。为了使用控件创建对话框,要求必须Microsoft

WindowsSystem目录下。

在默认情况下,通用对话框控件并不显示在工具箱中,在使用它之前,用广需要自行将其添加到工具箱中。第1章己经详细介绍了向工具箱中添加控件的方法。其中控件列表中的Microsoft Common Dialog Control就是通用对话框控件。本节仅介绍这个控件的基本属性和方法。

6.2.1 打开对话框的方法将通用对话框控件添加到窗体中后,如何在程序中打开指定类型的对话框呢?通用对话框控件提供了两种打开对话框的方法。一种方法是使用它的Action属性,通过为Action属性赋值,就可以打开对应类型的对话框。Action属性的值及其对应的对话框如表6.6所示。

这里给出一个打开【打开】对话框的实例。在窗体中添加一个按钮控件和一个通用对话框控件,设置按钮控件的Caption属性值为“打开”,名称使用默认值,如图6.7所示。

双击按钮控件打开【代码】窗口,输入如下代码:

Private Sub Commandl_Click()

=1

End Sub

单击工具栏中的【运行】按钮运行该程序,单击【打开】按钮,即可打开如图6.8所示的【打开】对话框。

另一个打开对话框的方法是使用通用对话框控件的方法,这种方法更直观。通用对话框控件的方法与其对应的对话框如表6.7所示。

将上述程序中的代码 =1替换为-Open,运行程序,单击【确定】按钮,也可打开如图6.8所示的【打开】对话框。

注意:对话框的类型不是在设计段设置,而是在运行时通过代码设置的。

通用对话框是一组标准的对话框,它们有标准的外观与功能,通过设置通用对话框控件的某些属性,可以部分地改变对话框的外观。如设置DialogTitle属性,可以改变对话框的标题;Flags属性则可以用来设置对话框的外观。

6.2.2 打开与保存对话框在应用程序中,常常需要执行打开或保存文件等操作,因此,也就常常需要调用【打开】对话框与【保存】对话框。

【打开】对话框与【保存】对话框很相似,大多数属性都是共同的,这里一同介绍。

对话框控件的【属性】窗口中所列的DefaultExt、Filter等属性是针对【打开】。

对话框与【保存】对话框而言的,表5.8中列出了这些属性的含义。

设置Filter属性的格式为:

描述符1|过滤符1|描述符2|过滤符2|……

描述符是将要显示在对话框【文件类型】下拉列表中的文字说明,这是用户所看到的,可以随意指定。过滤符是由通配符和实际的文件扩展名组成的,如*.*表示所有文件,*.txt表示文本文件,*doc表示Word文档文件。过滤符是系统用于区分各种文件类型的。描述符与过滤符一一对应,缺一不可。

如果Filter属性的设置为:

Word文档|*.doc|文本文件|*.txt|位图文件|*.bmpl|则在对话框中只显示扩展名为doc,txt和bmp的文件。

在设置过滤器属性时,如有多个文件类型,则按序排号为1,2,3……,如FilterIndex=2,则在对话框的【文件类型】框中缺省显示的是描述符2。

Flags属性的值也可以是表6.9中两项或多项的相加。例如,Flags=7则表示对话框同时具备Flags=2和Flags=4的特性。

也可以通过对话框控件的属性页来设置对话框的属性。将鼠标移动到对话框控件上,单击右键,在弹出的快捷菜单中执行【属性】命令,则弹出如图6.9所示的【属性页】对话框。

【属性页】对话框中的各选项与对话框控件【属性】窗口中的属性是相对应的,如【文件名称】选项对应FileName属性。通过【属性】窗口设置属性与通过属性页窗口设置属性是完全等同的。

还可以在程序运行阶段在代码中为各属性赋值,如下列语句将对话框的初始路径设置为:

c:windows:

r=“c:windows”

实例6.4【打开】与【保存】对话框的使用

在该程序中,用户可以调用【打开】与【保存】对话框,并能获取用户打开或保存文件的路径以及名称。

可以使用两个通用对话框控释,分别调用【打一开】对话框与【保存】对话框。通过它们的属性页,可以分别设置它们的属性,如对话框的初始路径、文件类型等。也可以使用一个通用对话框控件来调用各对话框。为了使【打开】与【保存】对话框的属性设置不同,应该在程序运行阶段在代码中为各属性赋值。本例只使用一个通用对话框控件。

在窗体中放置两个标签控件、两个文本框控件、两个按钮控件和,一个通用对话框控件,其中各控件的属性设置如表6.10所示。

双击【打开】按钮,打开【代码】窗口,将下列代码添加到ComOpen_CLick事件过程中:

Private Sub ComOpen_Click()

Title=“打开文件”

r=“c:windows”

=“图像文件|*.bmp|文本文件|*.txt|”

Index=2

=528

=1

=me

End Sub

在该段代码中,前5行代码设置对话框的属性,从中可以看出,对话框的标题为“打开文件”,初始路径为c:windows 。能显示后缀为bmp和txt的文件,在【文件类型】栏中缺省显示的是“文本文件”,Flags=528表明它同时具有Flags=17和Flags=512的特性,在对话框中显示一个【帮助】按钮,并且允许用户同时选中多个文件。

同样,将下列代码添加到ComOpen_Click事件过程中:

Private Sub ComSave_Click()

Title=“保存文件”

r=“f:document”

=“word文档|*.doc|”

=7

=2

=me

End Sub

运行该程序,单击【打开】按钮,则弹出【打开文件】对话框,从中选择一个或多个文件,单击【确定】按钮后,【打开】文本框中将显示用户选择的文件名,若用户选择多个文件,则所选文件的文件名都显示在文本框中。单击【保存】按钮,则打开【保存文件】对话框,在【文件名】文本框中输入文件名,单击【保存】按钮后,在【保存】文本框中将显示用户保存的文件名。如果用户输入的文件名己经存在,则弹出消息框,提示用户此文件己经存在。

6.2.3 【颜色】对话框通过使用【颜色】对话框,用户可方便地从中选取所需要的颜色。单击通用对话框控件【属性页】对话框的【颜色】选项卡,如图6.13所示,从中可以设置【颜色】对话框的颜色(color)与标志(Flags)属性(也可以在【属性】窗口中设置)。颜色(Color)属性用来设置或返回在【颜色】对话框中选定的颜色值,每个颜色值对应一种颜色。如255对应红色,0对应黑色,17777215对应白色,……

【颜色】对话框的标志(Flags)属性有4种可能值,如表6.11所示。

实例6.5使用【颜色】对话框

在该程序中,用户可以通过【颜色】对话框来选取标签的背景色,并且能显示出所选颜色的颜色值。

在窗体中放置两个标签控件、一个文本框控件、一个按钮控件和一个通用对话框控件。其中各对象的属性如表6.12所示。

双击【设置颜色】按钮,将下列代码添加到ComColor Click事件过程中:

Private Sub ComColor_Click()

n=3

lor=

=

End Sub

运行该程序,单击【设置颜色】按钮,在弹出的【颜色】对话框中选择一种颜色,单击【确定】按钮,标签的背景色就变成了用户在【颜色】对话框中所选取的颜色了,如图6.15所示。

6.2.4【字体】对话框【字体】对话框也是Windows应用程序中常用的对话框,通过该对话框可以方便地设置文本的字体、字号以及文字的各种效果,如斜体、下划线等。

单击通用对话框控件【属性页】对话框的【字体】选项卡,从中可以设置【字体】对话框的有关属性〔也可以在【属性】窗口中设置)。表6.13中列出了【字体】对话框各属性的含义。

实例6.6字体对话框的使用。

在该程序中,用户可以调用【字体】对话框来设置文本的字体、字号以及各种效果。

在窗体上放置一个标签控件、一个文本框控件、一个按钮控件和一个通用对话框控件。其中各对象的属性设置如表6.15所示。

双击【设置字体】按钮,打开【代码】窗口,将下列代码添加到ComFont_Click事件过程中:

Private Sub ComFont_Click()

=4

me=me

ze=ze

ld=ld

alic=alic

derline=derline

rikethru=rikethru

lor=

End Sub

在ComFont_Click事件过程中,第一行语句用来调用字体对话框,第二行语句是将用户在对话框中所选择的字体赋给文本框TexFont的FontName属性,其他语句的功能与此类似。

运行该程序,在文本框中输入一段文本,文本的字体、字号等特征由文本框的Font属性决定。单击【设置字体】按钮,则出现【字体】对话框,可见,对话框中各项属性的初始值就是在属性页(或【属性】窗口)中设置的值,如默认的字体为在FilelName属性中设置的宋体。从中选择字体、字号以及各种效果后,单击【确定】按钮,则文本框中的文本就以新的设置显示。例如,选择字体为“幼圆”,字体样式为“斜体”,字号为“三号”,选中“下划线”效果,并且选择颜色为“红色”,单击【确定】按钮后,则文本框中文本的显示如图6.19所示。

6.3 自定义对话框除了预定义对话框和通用对话框外,用户还可以根据实际需要自行定义对话框。自定义对话框实际上就是在一个窗体上放置一些控件,以构成一个用来接受用户输入的界面。这里给出一个设计自定义对话框的实例。

实例6.7自定义对话框。

在该实例中,用户可以通过对话框输入个人资料,并且输入的资料将显示在主窗体中。该程序用到两个窗体,其中一个窗体用作主窗体,另一个窗体用作对话框。设置主窗体为启动窗体,并且通过主窗体来调用对话框。

单击工具条中的【添加窗体】按钮,则出现如图6.20所示的【添加窗体】对话框,在该对话框中选择窗体类型为“对话框”,单击【打开】按钮即可为当前过程添加一个用于设计对话框的窗体。在该窗体上放置了对话框中常用的【确定】和【取消】按钮。下面就以这个窗体为基础设计自定义对话框。

在新建的对话框窗体中放置4个标签控件、1个文本框控件、2个单选项控样、1个组合框控件和1个框架控件,并且在框架控件中再放置4个复选框控件,如图6.21所示。其中各控件的属性设置如表6.16所示。


本文标签: 对话框 控件 按钮 属性 用户