MsgBox是Visual Basic和VBS中的一个函数,功能是弹出一个对话框,等待用户单击按钮,并返回一个Integer值表示用户单击了哪一个按钮。
“MsgBox”即为“Message Box”的缩写,在英语中意为“信箱”。
MsgBox函数和MsgBox语句均可用来弹出对话框,不同处在于MsgBox函数可以返回一个值,而MsgBox语句不会返回值。
MsgBox语句:用于弹出一个对话框。
格式如下:
MsgBox内容[,类型][,标题][,帮助文件名,帮助主题目录号]
在IE地址栏中输入“javascript:alert(“欢迎XX”)”,然后按enter键,则弹出对话框“欢迎XX”
VB中MsgBox语句也可方便实现,在窗体的单击事件中输入如下代码
Private Sub Form_click() MsgBox ("欢迎XX") End Sub
MsgBox内容[,类型][,标题][,帮助文件名,帮助主题目录号]
“内容”参数,为必要参数,是一个字符串,其长度不得超过1024字符。如果超过,多余的部分会被省略。字符串的内容在由MsgBox语句弹出的对话框中显示。当字符串在一行内显示不完时,将自动换行。也可用“chr$(13)+chr$(10)”或“vbCrlf”进行强制换行。
例如
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!" End Sub
运行后将弹出对话框如图:
“类型”参数,它是一个整数值或符号常量,用来控制在对话框内显示的按钮、图标的种类及数量。该参数的值由4类数值相加产生,这4类数值或符号常量分别表示按钮的类型、显示图标的种类、活动按钮的位置以及强制返回。不过,对于MsgBox语句,按钮的类型及强制返回作用不大,但对于MsgBox函数却很有用。在MsgBox函数中可通过按钮对话框中某个按钮而执行指定的操作。
MsgBox类型参数的取值:
符号常量 | 值 | 作 用 | |
按 钮 类 型 | vbOKOnly | 0 | 只显示“确定”按钮 |
vbOKCancel | 1 | 只显示“确定”及“取消”按钮 | |
vbAbortRetryIgnore | 2 | 显示“放弃”、“重试”和“忽略”按钮 | |
vbYesNoCancel | 3 | 显示“是”、“否”和“取消”按钮 | |
vbYesNo | 4 | 显示“是”和“否”按钮 | |
vbRetryCancel | 5 | 显示“重试”和“取消”按钮 | |
图 标 样 式 | vbCritical | 16 | 显示系统叉号图标 |
vbQuestion | 32 | 显示系统问号图标 | |
vbExclamation | 48 | 显示系统叹号图标 | |
vbInformation | 64 | 显示系统信息图标 | |
默 认 按 钮 | vbDefaultButton1 | 0 | 第一个按钮为默认按钮 |
vbDefaultButton2 | 256 | 第二个按钮为默认按钮 | |
vbDefaultButton3 | 512 | 第三个按钮为默认按钮 | |
vbDefaultButton4 | 768 | 第四个按钮为默认按钮 | |
强制 返回 | vbApplicationModal | 0 | 应用程序强制返回 |
vbSystemModal | 4096 | 系统强制返回 |
例如:
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!",2 End Sub
运行后将弹出对话框如图:
例如:
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!",64 End Sub
运行后将弹出对话框如图:
如果要同时定义按钮类型和图标样式,可直接将按钮类型的取值和图标样式的取值相加即可。例如:2+64
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!",66 End Sub
执行结果如图:
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!",66+512 End Sub
则会将默认按钮变为第三个按钮,执行结果如图:
如果对话框中只有三个按钮,代码却为“66+768”,执行结果为默认选中第一个按钮。
“标题”参数,用来指定对话框的标题栏文字。
例如:
Private Sub Form_click() MsgBox "欢迎XX" & Chr(13) + Chr(10) & "祝XX快乐每一天!",65 + 512, "许愿池" End Sub
执行结果:
*************
MsgBox函数,除可返回值外,其他功能与MsgBox语句相同。
MsgBox函数返回值是一个整数,可以是1~7之间的任意整数,它们分别对应7个按钮被选中的状态。
返回值 | 操 作 | 符号常量 |
1 | 选“确定”按钮 | vbOk |
2 | 选“取消”按钮 | vbCancel |
3 | 选“终止”按钮 | vbAbort |
4 | 选“重试”按钮 | vbRetry |
5 | 选“忽略”按钮 | vblgnore |
6 | 选“是”按钮 | vbYes |
7 | 选“否”按钮 | vbNo |
例如:
在按钮【退出】的双击事件中输入如下代码:
Private Sub Command1_Click() Dim a As Integer ‘定义整形变量a a = MsgBox("你确定要退出吗?", 1 + 32) ‘用变量a来接收MsgBox函数的返回值 If a = 1 Then ‘如果变量a的值为1,即MsgBox函数的返回值为1。那么 End Else Print ("你没有退出。") End If End Sub
(1)捷报:力度最轻、亲。
MsgBox("操作成功!", vbOKOnly + vbInformation, "提示"
(2)选择:力度中等,需认真对待。
If MsgBox("是否继续?", vbYesNo + vbQuestion, "选择") = MsgBoxResult.Ok Then '//继续 Else Exit Sub '//否则退出,或做其他操作。 End If
(3)警告:力度最大,问题严重,需用户停止现在的操作,更改操作。
If MsgBox("电量不足,请尽快蓄电!", vbOKOnly + vbExclamation, "警示") = MsgBoxResult.Ok Then Else Exit Sub End If
在编程中,发现有些信息少数字描述不清楚;字数多了以后发现重要信息易被淹没,用户较难找到重点。
这时,我找到一种方法,就是采用转行的方式,将最重要的简练写在第一行,其他内容转行详写。这时只需用转行符(“vbCr”或“vbCrLf”)就可以解决。
例:MsgBox("系统的基本数据未设定好,暂不支持上机操作。" & vbCrLf & "请联系管理员!", MsgBoxStyle.Exclamation, "提示")
最后,再看看一条MsgBox语句
If MsgBox("是否继续?", vbYesNo + vbQuestion + vbQuestion + vbMsgBoxSetForeground + vbDefaultButton1, "选择") = MsgBoxResult.Ok Then '//继续 Else Exit Sub '//否则退出,或做其他操作。 End If
上面的程序没有语法错误,中间以vb开头的关键字也没有顺序的要求,从这里可以看出使用很简单。
下面对一些常用的进行整理:
+ vbAbort:弹出“中止”按钮
+ vbIgnore :弹出“忽略”按钮
+ vbRetry :弹出“重视”按钮
MsgBoxResult.Abort:单击"中止"按钮
MsgBoxResult.Ignore :单击"忽略"按钮
MsgBoxResult.Retry :单击"重试"按钮
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛