Для чего нужен параметр MessageBoxResult defaultResult в MessageBox.Show? - PullRequest
3 голосов
/ 12 июля 2011

Некоторые из MessageBox.Show перегружают имеет параметр MessageBoxResult defaultResult. Для чего это? В описании говорится «Значение MessageBoxResult, которое указывает результат по умолчанию для окна сообщения». Разве возвращаемый MessageBoxResult не зависит только от того, что пользователь нажимает / делает (см. Примечания здесь )?

Если я хочу поведение по умолчанию, какое значение я должен передать?

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

В простом английском это опция, которая будет выбрана, если вы просто нажмете «Enter», когда появится MessageBox.

0 голосов
/ 12 июля 2011

Согласно Документация MSDN по перечислению DialogResult , это указывает возвращаемое значение окна сообщения.

Возможные значения:

  • Нет : из диалогового окна ничего не возвращается. Это означает, что модальное диалоговое окно продолжает работать.
  • ОК : Возвращаемое значение диалогового окна - ОК (обычно отправляется с кнопки с надписью ОК).
  • Отмена : Возвращаемое значение диалогового окна - Отмена (обычно отправляется с кнопки, помеченной Отмена).
  • Прервать : Возвращаемое значение диалогового окна - Прервать (обычно отправляется кнопкой, помеченной как Прервать).
  • Retry : возвращаемое диалоговое окно значение Retry (обычно отправляется с кнопки с меткой Retry).
  • Игнорировать : Возвращаемое значение диалогового окна - Игнорировать (обычно отправляется с кнопки с меткой Игнорировать).
  • Да : Возвращаемое значение диалогового окна - Да (обычно отправляется с кнопки с надписью Да).
  • Нет : Возвращаемое значение диалогового окна - Нет (обычно отправляется с кнопки с надписью Нет).

И на основе Документация MSDN о MessageBox.Show метода , кнопкой по умолчанию для окна сообщения будет кнопка OK .

То есть, если вы не указали какую-либо кнопку в окне сообщения, она всегда будет иметь кнопку ОК, чтобы закрыть ее. Таким образом, «поведение по умолчанию» или значение по умолчанию, возвращаемое окном сообщения, будет состоять в проверке DialogResult.OK

result = MessageBox.Show(message);

if(result == DialogResult.OK) { /* default or OK button has been pressed */ }
...