3.6 使用对话框
对话框是程序与用户进行交互的重要途径。对话框即可以用来显示信息,也可以用来输入信息。在 VB 中能够建立两种预制对话框:输入对话框和消息对话框。这两种对话框的实现都只需使用系统提供的函数( InputBox 和 MsgBox ),而不必为对话框另建窗体。
3.6.1 输入对话框
InputBox 函数用于产生一个能接收用户输入的对话框,其语法格式如下:
变量 =InputBox( 提示 [ ,标题 ][ ,默认值 ][ , xpos][ , ypos])
其中:
( 1 )“提示”指定在对话中显示的文本。
( 2 )“标题”指定对话框的标题。
( 3 )“默认值”用于指定输入框(用于输入内容的文本框)中显示的默认文本。
( 4 ) xpos 和 ypos 分别指定对话框的左边和上边与屏幕左边和上边的距离。
例如下列语句:
filename$=InputBox(“ 请输入文件名(不超过 8 个字符) ”,” 文件名 ”,”vbfile”)
将产生一个如图 3.9 所示的输入对话框。

图 3.9 输入对话框

3.6.2 消息对话框
使用 MsgBox 函数可以产生一个对话框来显示消息(见图 3.11 )。当用户单击某个按钮后,将返回一个数值以标明用户单击了哪个按钮。其语法格式是:
变量 =MsgBox( 提示 [ ,对话框类型 [ ,对话框标题 ]])
其中:
( 1 )“提示”指定在对话中显示的文本。
( 2 )“对话框标题”指定对话的标题。图 图 3.11 消息对话框
( 3 )“对话框类型”指定对话中出现的按钮和图标,一般有 3 个参数,其取值和含义见表 3.2 、表 3.3 和表 3.4 。
表 3.2 参数 1 ── 出现按钮
值
|
符 号 常 量
|
显示的结果
|
0
|
vbOKOnly
|
“确定”按钮
|
1
|
vbOKCancel
|
“确定”和“取消” 按钮
|
2
|
vbAbortRetryIgnore
|
“终止”、“重试”和“忽略” 按钮
|
3
|
vbYesNoCancel
|
“是”、“否”和“取消” 按钮
|
4
|
vbYesNo
|
“是”和“否” 按钮
|
5
|
vbRetryCancel
|
“重试”和“取消” 按钮
|
表 3.3 参数 2 ──图标类型
值
|
符 号 常 量
|
显示的图标
|
16
|
vbCritical
|
停止图标
|
32
|
vbQuestion
|
问号(?)图标
|
48
|
vbExclamation
|
感叹号(!)图标
|
64
|
vbInformation
|
消息图标
|
表 3.4 参数 3 ── 默认按钮
值
|
符 号 常 量
|
默认的活动按钮
|
0
|
vbDefaultButton1
|
第一个按钮
|
256
|
VbDefaultButton2
|
第一个按钮
|
512
|
VbDefaultButton3
|
第一个按钮
|
这 3 种参数值决定了对话框的模式。可以把这些参数值(每组只取一个值)相加以生成一个组合的按钮参数值。例如:
y=Msgbox(“ 输入的文件名是否正确 ”,52,” 请确认 ”)
显示的对话框如图 3.11 所示。
( 4 ) MsgBox 返回值指明了用户在对话框中选择了哪一个按钮,如表 3.5 所示。
表 3.5 函数返回值
返回值
|
符 号 常 量
|
所对应的按钮
|
1
|
vbOk
|
“确定”按钮
|
2
|
vbCancel
|
“取消“按钮
|
3
|
vbAbort
|
“终止”按钮
|
4
|
vbRetry
|
“重试”按钮
|
5
|
vVbIgnore
|
“忽略”按钮
|
6
|
vVbYes
|
“是”按钮
|
7
|
vbNo
|
“否”按钮
|
( 5 )选项中的值可以是数值,也可以是符号常量。
( 6 )如果省略了某一选项,必须加入相应的逗号分隔符。
( 7 )若不需要返回值,则可以使用 MsgBox 的语句格式。
[ 例 3.5] 设计应用程序,由用户从输入框输入圆的半径,输出圆的周长的面积。
( 1 )创建应用程序用户界面和设置对象属性。如图 3.12 所示。
 
图 3.12 例 3.5 的运行结果
( 2 )编写两个命令按钮的单击事件过程代码如下:
Private Sub Command1_Click()
Dim r As Single, k As Single, s As Single
r = Val(InputBox(" 请输入圆的半径 ", " 计算圆的周长的面积 "))
k = 2 * 3.1415926 * r
s = 3.1415926 * r * r
Text1.Text = k
Text2.Text = s
MsgBox " 计算已完成 ", , " 例 3.5"
End Sub
Private Sub Command2_Click()
End
End Sub
|