更新:2007 年 11 月
在对话框中显示消息,等待用户单击按钮,然后返回一个整数,指示用户单击了哪个按钮。
Public Function MsgBox( _
   ByVal Prompt As Object, _
   Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _
   Optional ByVal Title As Object = Nothing _
) As MsgBoxResult
参数
- Prompt 
 必选。以消息形式显示在对话框中的 String 表达式。Prompt 的最大长度大约为 1024 个字符,具体取决于所用字符的宽度。如果 Prompt 包含多行,您可以在各行之间使用回车符(Chr(13))、换行符(Chr(10))或回车/换行符的组合(Chr(13) & Chr(10))分隔各行。
- Buttons 
 可选。数值表达式,它是值的总和,指定显示的按钮数目及按钮类型,使用的图标样式,默认按钮的标识以及消息框的样式等。如果省略 Buttons,则默认值为零。
- Title 
 可选。显示在对话框标题栏中的 String 表达式。如果省略 Title,则将应用程序名放在标题栏中。
设置
下表列出了 MsgBoxStyle 枚举值。
| 成员 | 值 | 说明 | 
|---|---|---|
| OKOnly | 0 | 只显示“确定”按钮。 | 
| OKCancel | 1 | 显示“确定”和“取消”按钮。 | 
| AbortRetryIgnore | 2 | 显示“中止”、“重试”和“忽略”按钮。 | 
| YesNoCancel | 3 | 显示“是”、“否”和“取消”按钮。 | 
| YesNo | 4 | 显示“是”和“否”按钮。 | 
| RetryCancel | 5 | 显示“重试”和“取消”按钮。 | 
| Critical | 16 | 显示“关键消息”图标。 | 
| Question | 32 | 显示“警告查询”图标。 | 
| Exclamation | 48 | 显示“警告消息”图标。 | 
| Information | 64 | 显示“信息消息”图标。 | 
| DefaultButton1 | 0 | 第一个按钮是默认的。 | 
| DefaultButton2 | 256 | 第二个按钮是默认的。 | 
| DefaultButton3 | 512 | 第三个按钮是默认的。 | 
| ApplicationModal | 0 | 应用程序是有模式的。用户必须响应消息框,才能继续在当前应用程序中工作。 | 
| SystemModal | 4096 | 系统是有模式的。所有应用程序都被挂起,直到用户响应消息框。 | 
| MsgBoxSetForeground | 65536 | 指定消息框窗口为前景窗口。 | 
| MsgBoxRight | 524288 | 文本为右对齐。 | 
| MsgBoxRtlReading | 1048576 | 指定文本应为在希伯来语和阿拉伯语系统中从右到左显示。 | 
第一组值 (0–5) 描述对话框中显示的按钮数量和类型。第二组值 (16, 32, 48, 64) 描述图标样式。第三组值 (0, 256, 512) 确定默认使用哪个按钮。第四组值 (0, 4096) 确定消息框的模式性,第五组值指定消息框窗口是否为前台窗口,以及文本对齐和方向。将这些数字相加以生成 Buttons 参数的最终值时,只能由每组值取用一个数字。
返回值
| 常数 | 值 | 
|---|---|
| OK | 1 | 
| Cancel | 2 | 
| Abort | 3 | 
| Retry | 4 | 
| Ignore | 5 | 
| Yes | 6 | 
| No | 7 | 
异常
| 异常类型 | 错误号 | 条件 | 
|---|---|---|
| Prompt 不是一个 String 表达式,或者 Title 无效。 | ||
| 进程不是以 User Interactive 模式运行。 | ||
| 一个或多个参数,而不是 MsgBoxResult 或 MsgBoxStyle 枚举的成员。 | 
如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象) 比较错误号。) 然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述 替换这种错误控制。
备注
如果对话框显示“取消”按钮,则按 Esc 键与单击“取消”按钮的效果相同。如果对话框包含“帮助”按钮,则为对话框提供区分上下文的帮助。但是,其他按钮中有一个被单击之前,都不会返回任何值。
| .gif) 说明: | 
|---|
| 若要除第一个参数外还指定其他参数,必须在表达式中使用 MsgBox 函数。如果省略任何位置参数,则必须保留相应的逗号分隔符。 | 
| .gif) 说明: | 
|---|
| MsgBox 函数需要 SafeTopLevelWindows 级别的 UIPermission,在部分信任情况下可能会影响其执行。有关更多信息,请参见 请求权限 和 UIPermission。 | 
示例
本示例使用 MsgBox 函数在具有“是”和“否”按钮的对话框中显示一条严重错误信息。“否”按钮被指定为默认响应。这是通过将 MsgBox 常数值组合到数值表达式中来完成的。在本例中,4(“是”或“否”按钮的组合)、16(“关键消息”窗口)和 256(作为默认按钮的第二个按钮)相加的和为 276。由 MsgBox 函数返回的值由用户选择的按钮确定:“是”返回值 6;“否”则返回值 7。
Dim msg As String
Dim title As String
Dim style As MsgBoxStyle
Dim response As MsgBoxResult
msg = "Do you want to continue?"   ' Define message.
style = MsgBoxStyle.DefaultButton2 Or _
   MsgBoxStyle.Critical Or MsgBoxStyle.YesNo
title = "MsgBox Demonstration"   ' Define title.
' Display message.
response = MsgBox(msg, style, title)
If response = MsgBoxResult.Yes Then   ' User chose Yes.
   ' Perform some action.
Else
   ' Perform some other action.
End If
要求
**模块:**Interaction
**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)