Функция MsgBox (Visual Basic)
Обновлен: Ноябрь 2007
Отображает сообщение в диалоговом окне, ожидает нажатия кнопки и возвращает целое число, определяющее нажатую кнопку.
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 |
Отображается только кнопка OK. |
OKCancel |
1 |
Отображаются кнопки OK и "Отмена". |
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 имеет недопустимое значение. |
||
Процесс не выполняется в режиме интерактивного взаимодействия с пользователем. |
||
Один или несколько параметров не являются членами перечислений MsgBoxResult или MsgBoxStyle. |
См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует изменить такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.
Заметки
Если в диалоговом окне выводится кнопка Отмена, то нажатие клавиши ESC имеет тот же эффект, что и нажатие кнопки Отмена. Если диалоговое окно содержит кнопку Справка, то для данного окна имеется контекстная справка. Тем не менее никакое значение не возвращается, пока не будет нажата какая-либо другая кнопка.
![]() |
---|
Для задания нескольких аргументов (а не только первого) в выражении необходимо использовать функцию MsgBox. Если пропускаются какие-либо аргументы, задающие позицию, то нужно оставить разделяющие их запятые. |
![]() |
---|
Функция MsgBox требует UIPermission уровня SafeTopLevelWindows, что может повлиять на ее выполнение в случаях частичного доверия. Дополнительные сведения см. в разделах Запрос разрешений и UIPermission. |
Пример
В данном примере функция MsgBox используется для отображения критического сообщения об ошибке в диалоговом окне, содержащем кнопки "Да" и "Нет". Кнопка "Нет" задается как кнопка по умолчанию для ответа. Это выполняется путем объединения в одном числовом выражении нескольких значений констант MsgBox. В этом случае итоговое значение 276 получается как результат сложения 4 (сочетание кнопок "Да" и "Нет"), 16 (окно Критическое сообщение) и 256 (указание второй кнопки как кнопки по умолчанию). Значение, возвращаемое функцией 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)