一、消息对话框
在编写代码时,我们常常需要在屏幕上显示一些提示信息、警告信息、询问信息或错误信息等消息,对用户的操作做一个提醒或反馈,这时就需要用到消息对话框。
消息对话框是用MsgBox语句或Msgbox函数产生的,两者的不同之处在于MsgBox函数还会产生一个返回值,而MsgBox语句没有返回值,常用于比较简单的信息显示。
MsgBox 语句的语法格式:
MsgBox(提示内容信息,消息框类型,消息框标题,HelpFile,Context)
如:MsgBox"数据正确吗?"
MsgBox 函数的语法格式:
整形变量=MsgBox(提示内容信息,消息框类型,消息框标题,HelpFile,Context)
(1)提示信息(Prompt)——是指在消息框中出现的文本,是字符串表达式,最大长度为l04个字符。
(2)消息框类型(Buttons)——是指消息框中的按钮和图标,是数值表达式,一般有3个参数,指定显示按钮的数目及形式、使用的图标样式、默认按钮是什么以及消息框的强制回应等。如果省略,则默认为0。其取值和含义见下面3个表格(表1、表2、表3)。这3个参数值可以相加以达到需要的样式。
(3)消息框标题(Title)——是指消息框标题栏的标题,是字符串表达式,如果省略,则将当前应用程序名放在标题栏中。
(4)HelpFile——是字符串表达式,识别用来向消息对话框提供上下文相关帮助的帮助文件。如果提供了<HelpFile>参数,则也必须提供<Context>参数。
(5)Context——是数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编导。同 样,如果提供了<Context>参数,则也必须提供<HelpFile>参数。
注意:5个参数中只有第一个参数(Prompt)是必须的,其它的为可选的。
(6)MsgBox函数返回的值指明了在消息框中选择哪一个按钮,如表4。
表1
数值常量 |
值 |
在消息框上显示的按钮 |
VbOKOnly |
0 |
“确定”按钮 |
VbOKCancel |
1 |
“确定”和“取消”按钮 |
VbAbortRetryIgnore |
2 |
“终止(A)”、“重试(RP)”和“忽略(I)”按钮 |
VbYesNoCancel |
3 |
“是(Y)”、“否(N)”、“取消”按钮 |
VbYesNo |
4 |
“是(Y)”和“否(N)”按钮 |
VbRetryCancel |
5 |
“重试(RP)”和“取消”按钮 |
表2
数值常量 |
值 |
在消息框上显示的图标 |
VbCritical |
16 |
显示Critical Message图标 |
VbQuestion |
32 |
显示Warning Query图标 |
VbExclamation |
48 |
显示Warning Message图标  |
VbInformation |
64 |
显示Information Message图标 |
表3
数值常量 |
值 |
默认的按钮 |
VbDefaultButton1 |
0 |
第一个按钮为默认的按钮 |
VbDefaultButton2 |
256 |
第二个按钮为默认的按钮 |
VbDefaultButton3 |
512 |
第三个按钮为默认的按钮 |
VbDefaultButton4 |
768 |
第四个按钮为默认的按钮 |
VbApplicationModal |
0 |
应用程序强制返回;应用程序被挂起,直到用户对消息框作出响应才继续工作。 |
VbSystemModal |
4096 |
系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。 |
表4
符号常量 |
MsgBox函数返回的值 |
所对应的按钮 |
vbOK |
1 |
“确定”按钮(OK) |
vbCancel |
2 |
“取消”按钮(Cancel) |
vbAbort |
3 |
“终止(A)”按钮(Abort) |
vbRetry |
4 |
“重试(RP)”按钮(Retry) |
vbIgnore |
5 |
“忽略(I)”按钮(Ignore) |
vbYes |
6 |
“是(Y)”按钮(Yes) |
vbNo |
7 |
“否(N)”按钮(No) |
注意:如果要在MsgBox语句或MsgBox函数的格式中省略某些参数,则必须加入相应的逗号分隔符。
例1:显示消息框。
Dim c As Integer Private Sub Command1_Click() c = MsgBox("abcd", 5 + 16 + 256, "xyz") if c=2 Then end End Sub
将数值分别改动一下,再看运行结果。
例2:
Private Sub Form_Unload(Cancel As Integer)
Dim intyourreply As Integer Dim strmyreply As String intyourreply = MsgBox("动画已显示完毕" + Chr(13) + "您是否满意", vbYesNoCancel + _ vbQuestion + vbDefaultButton1 + vbApplicationModal, "询问您的意见") strmyreply = "我的回答" Select Case intyourreply Case vbYes MsgBox "非常感谢!欢迎再来。", , strmyreply Case vbNo MsgBox "非常遗憾,请多提宝贵意见!", , strmyreply Case vbCancel MsgBox "沉默是金!", , strmyreply
End Select
End Sub
说明:消息框有一个特点,它始终等待使用者的选择使用者必须单击消息框中的一个按钮(或回车键)程序才能继续执行下去.也就是说,使用者不能无视它或跳过它去执行其它操作.
二、输入对话框
消息对话框可以用来显示各种消息,它不能接受用户的输入,只能允许用户在预先定义的几个按钮上进行选择并由此获取用户的决定。但是有些时候,我们可能需要用户回答诸如姓名、密码或者数字之类的信息,这时就需要使用输入对话框,它是由InputBox函数产生的,专门用来接受用户的键盘输入。功能是在对话框中显示一个提示符,并返回用户输入文本(InputBox 函数返回字符串型值)。
其语法格式为:
变量名[$]=InputBox (prompt,[Tille,][Default],[Xpos],[Ypos],[HelpFile],[Context]) As String
其中:“[ ]”为可选项。
(1)prompt——必须参数,定义提示框的提示信息。该参数是一个字符串表达式,最大长度为1024个字符。VB将自动分行表达;
(2)Title——是字符串表达式,作为输入对话框标题栏中显示的标题。如果省略,则将当前应用程序名放在标题栏中
(3)Default——定义默认的输入文本。是字符串表达式,作为输入对话框文本框中的默认字符串。如果省略,则文本框为空。
(4)Xpos,Ypos——是数值表达式,指定对话框的左边界与屏幕左边界的水平距离、上边界与屏幕上边界的垂直距离。如果省赂,则对话框被放置在水平方向、垂直方向居中的位置。
(5)HelpFile——是字符串表达式,识别用来向消息对话框提供上下文相关帮助的帮助文件。如果提供了<HelpFile>参数,则也必须提供<Context>,参数。
(6)Context——是数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。同样,如果提供了<Context>参数,则也必须提供<HelpFile>,参数。
当执行到一个InputBox函数时,屏幕上就出现一个输入对话框,显示标题、提示信息、文本框及两个按钮,等待用户从键盘输入文本并单击按钮:“确定”或“取消”。若用户单击的是“确定”按钮或按下了Enter键,则InputBox函数返回文本框中的内容;若用户单击的是“取消”按钮,则InputBox函数返回一个空串(即长度为零的字符串)。
注意:与MsgBox函数一样,如果要在InputBox函数的格式中省略某些参数,则必须加入相应的逗号分隔符。
例:(只添加一个按钮)
Dim Temp As Integer Private Sub Command1_Click()
Temp = InputBox("请输入数据","天气判断") If Val(Temp) > 25 Then MsgBox "It is hot!" '返回输入的文本(转换为数值)
End Sub
例子:利用InputBox函数编一段代码,在一个程序运行之初向用户询问密码,以确定其是否为合法用户。
代码:
Private Sub Command1_Click()
Const password = "zhouhp" Dim intcounter As Integer Dim strpassword As String For intcounter = 1 To 3 strpassword = InputBox("请输入您的密码") If strpassword = password Then Exit For Next intcounter If intcounter > 3 Then MsgBox "对不起!您是非法用户。", vbOKOnly + vbCritical, "拒绝" Unload Me End If
End Sub
程序说明:
若用户输入的密码正确,则程序继续运行;若不正确,则再次显示输入对话框。但输入对话框最多只出现三次,第三次仍不正确的话,则显示消息对话框表示拒绝,并将窗体卸载,结束应用程序。
三、通用对话框(Common Dialog)
见"对话框"控件。
|