Функция 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

Исключения

Тип исключения

Номер ошибки

Условие

ArgumentException

5

Либо Prompt — это не выражение типа String, либо параметр Title имеет недопустимое значение.

InvalidOperationException

5

Процесс не выполняется в режиме интерактивного взаимодействия с пользователем.

InvalidEnumArgumentException

5

Один или несколько параметров не являются членами перечислений MsgBoxResult или MsgBoxStyle.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует изменить такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Если в диалоговом окне выводится кнопка Отмена, то нажатие клавиши ESC имеет тот же эффект, что и нажатие кнопки Отмена. Если диалоговое окно содержит кнопку Справка, то для данного окна имеется контекстная справка. Тем не менее никакое значение не возвращается, пока не будет нажата какая-либо другая кнопка.

139z2azd.alert_note(ru-ru,VS.90).gifПримечание.

Для задания нескольких аргументов (а не только первого) в выражении необходимо использовать функцию MsgBox. Если пропускаются какие-либо аргументы, задающие позицию, то нужно оставить разделяющие их запятые.

139z2azd.alert_note(ru-ru,VS.90).gifПримечание.

Функция 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)

См. также

Ссылки

Функция InputBox (Visual Basic)