Окно сообщения MessageBox

Как правило, для вывода сообщений применяется элемент MessageBox. Однако кроме сообственно вывода строки сообщения данный элемент может устанавливать ряд настроек, которые определяют его поведение.

Для вывода сообщения в классе MessageBox предусмотрен метод Show, который имеет различные версии и может принимать ряд параметров. Рассмотрим одну из наиболее используемых версий:

1 2 3 4 5 6 7 8 public static DialogResult Show( string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options )

Здесь применяются следующие параметры:

text: текст сообщения

caption: текст заголовка окна сообщения

buttons: кнопки, используемые в окне сообщения. Принимает одно из значений перечисления MessageBoxButtons:

  • AbortRetryIgnore: три кнопки Abort (Отмена), Retry (Повтор), Ignore (Пропустить)
  • OK: одна кнопка OK
  • OKCancel: две кнопки OK и Cancel (Отмена)
  • RetryCancel: две кнопки Retry (Повтор) и Cancel (Отмена)
  • YesNo: две кнопки Yes и No
  • YesNoCancel: три кнопки Yes, No и Cancel (Отмена)

Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.

icon: значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon:

  • Asterisk, Information: значок, состоящий из буквы i в нижнем регистре, помещенной в кружок
  • Error, Hand, Stop: значок, состоящий из белого знака "X" на круге красного цвета.
  • Exclamation, Warning: значок, состоящий из восклицательного знака в желтом треугольнике
  • Question: значок, состоящий из вопросительного знака на периметре круга
  • None: значок у сообщения отсутствует

defaultButton: кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton:

  • Button1: первая кнопка из тех, которые задаются перечислением MessageBoxButtons
  • Button2: вторая кнопка
  • Button3: третья кнопка

options: параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions:

  • DefaultDesktopOnly: окно сообщения отображается на активном рабочем столе.
  • RightAlign: текст окна сообщения выравнивается по правому краю
  • RtlReading: все элементы окна располагаются в обратном порядке справа налево
  • ServiceNotification: окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь

Нередко используется один параметр - текст сообщения. Но посмотрим, как использовать остальные параметры. Пусть у нас есть кнопка, в обработчике нажатия которой открывается следующее окно сообщения:

1 2 3 4 5 6 7 8 9 10 private void button1_Click(object sender, EventArgs e) { MessageBox.Show( "Выберите один из вариантов", "Сообщение", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); }

 

Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод MessageBox.Show возвращает объект DialogResult, с помощью которого мы можем узнать, какую кнопку в окне сообщения нажал пользователь. DialogResult представляет перечисление, в котором определены следующие значения:

  • Abort: нажата кнопка Abort
  • Retry: нажата кнопка Retry
  • Ignore: нажата кнопка Ignore
  • OK: нажата кнопка OK
  • Cancel: нажата кнопка Cancel
  • None: отсутствие результата
  • Yes: нажата кнопка Yes и No
  • No: нажата кнопка No

Используем обработку выбора пользователя, изменив обработчик нажатия кнопки следующим образом:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 private void button1_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show( "Окрасить кнопку в красный цвет?", "Сообщение", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);   if (result == DialogResult.Yes) button1.BackColor=Color.Red;   this.TopMost = true; }

И теперь, если в окне сообщения мы выберем вариант Yes, то кнопка окрасится в красный цвет.

2. Задание: реализуйте методы предложенных объектов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: