MsgBox 函数 (Visual Basic)

更新: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

异常

异常类型

错误号

条件

ArgumentException

5

Prompt 不是一个 String 表达式,或者 Title 无效。

InvalidOperationException

5

进程不是以 User Interactive 模式运行。

InvalidEnumArgumentException

5

一个或多个参数,而不是 MsgBoxResult 或 MsgBoxStyle 枚举的成员。

如果正在升级使用非结构化错误处理方式的 Visual Basic 6.0 应用程序,请参见“错误号”一列。(您可以根据 Number 属性(Err 对象) 比较错误号。) 然而,如果可能,应当考虑用 Visual Basic 的结构化异常处理概述 替换这种错误控制。

备注

如果对话框显示“取消”按钮,则按 Esc 键与单击“取消”按钮的效果相同。如果对话框包含“帮助”按钮,则为对话框提供区分上下文的帮助。但是,其他按钮中有一个被单击之前,都不会返回任何值。

说明:

若要除第一个参数外还指定其他参数,必须在表达式中使用 MsgBox 函数。如果省略任何位置参数,则必须保留相应的逗号分隔符。

说明:

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

要求

命名空间:Microsoft.VisualBasic

**模块:**Interaction

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

InputBox 函数 (Visual Basic)