Должен ли я использовать значок предупреждения или значок вопросительного знака в окне сообщения Windows? - PullRequest
14 голосов
/ 20 мая 2011

Многие знают о MessageBoxIcon типа "вопрос". Если вы не особенно знакомы с этим значком, это просто прославленный знак вопроса. Мне интересно, является ли этот значок приемлемым в профессиональных приложениях. Например, давайте предположим, что у меня есть кнопка, которая при нажатии очищает все текстовые поля во всей форме. Когда кнопка нажата, я хотел бы предупредить пользователя о том, что его действие собирается сделать. Я мог написать одно из следующих:

MessageBox.Show("Really clear all data?", "Clear confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

OR

MessageBox.Show("Really clear all data?", "Clear confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

Что бы вы назвали более профессиональным из них?

Ответы [ 9 ]

25 голосов
/ 20 мая 2011

Я не думаю, что это проблема "профессионализма", но это определенно противоречит рекомендациям Microsoft.

Документация для флага MB_ICONQUESTION говорит следующее (и то же самое для члена "Вопрос" в MessageBoxIcon enum ):

В окне сообщения появляется значок вопросительного знака. Значок сообщения с вопросительным знаком больше не рекомендуется, поскольку он нечетко представляет конкретный тип сообщения и потому что формулировка сообщения в виде вопроса может применяться к любому типу сообщения. Кроме того, пользователи могут путать знак вопроса с символом сообщения с информацией справки. Поэтому не используйте этот символ сообщения с вопросительным знаком в своих окнах сообщений. Система продолжает поддерживать ее включение только для обратной совместимости.

А в разделе Стандартные значки Руководства по взаимодействию с пользователем в Windows очень четко сказано, что значок вопросительного знака должен только использоваться для обозначения «точки входа справки»:

Значки вопросительного знака

  • Используйте значок вопросительного знака только для точек входа справки. Для получения дополнительной информации см. Рекомендации к точке входа справки.
  • Не используйте значок вопросительного знака, чтобы задавать вопросы. Опять же, используйте значок вопросительного знака только для точек входа справки. В любом случае нет необходимости задавать вопросы, используя значок вопросительного знака - достаточно представить основную инструкцию в виде вопроса.
  • Не заменяйте значки вопросительного знака обычными значками предупреждений. Заменяйте значок вопросительного знака значком предупреждения только в том случае, если вопрос имеет значительные последствия. В противном случае не используйте значок.

Я настоятельно рекомендую вам прочитать весь документ; он предоставляет множество полезных советов по выбору правильного значка. Но в данном конкретном случае, поскольку вы просите пользователя подтвердить операцию, которая может привести к потере данных, вам обязательно следует использовать значок предупреждения, соответствующий этому руководству:

  • Для диалогов с вопросами используйте значки предупреждений только для вопросов со значительными последствиями.
4 голосов
/ 20 мая 2011

Я бы использовал значок предупреждения для диалогов, предупреждающих пользователя о том, что что-то плохое (или необратимое) произойдет.

Смысл значка предупреждения - привлечь внимание пользователя к тому факту, что он собирается совершить ошибку.
Это верно, даже если диалоговое окно содержит вопрос.

3 голосов
/ 20 мая 2011

Хорошо очистить данные - это то, что нужно правильно выделить. Пользователи должны быть предупреждены, особенно когда это все данные, и если у вас нет никаких решений для резервного копирования. Таким образом, второй вариант более уместен в этом сценарии

2 голосов
/ 20 мая 2011

Самым профессиональным было бы сделать действие отменяемым и, таким образом, сделать подтверждение / предупреждение совершенно ненужным.

Если это действительно невозможно отменить, следуйте указаниям Windows, как указал Коди в своем ответе..

2 голосов
/ 20 мая 2011

Более важно, чем значок: вы должны сделать кнопку Нет кнопкой по умолчанию, если считаете, что это потенциально рискованное действие, т.е. используйте перегрузку, которая принимает параметр MessageBoxDefaultButton и задаете:

...,MessageBoxDefaultButton.Button2
2 голосов
/ 20 мая 2011

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

Очистка данных не может быть отменена. Хотите продолжить?

Вопрос будет больше похож на:

Вы уверены, что хотите очистить все данные?

В тексте также должны быть полные и грамматически правильные предложения.

1 голос
/ 20 мая 2011

Они одинаково профессиональные или непрофессиональные в зависимости от вашей точки зрения =). Вы должны рассмотреть, что вы пытаетесь сообщить своему пользователю. Из вашего описания проблемы я бы предпочел использовать «предупреждение», поскольку кажется, что очистка этих полей может иметь негативные последствия.

0 голосов
/ 20 мая 2011

Честно говоря .. Я бы сказал "Are you sure you wish to clear all data" вместо "Really clear all data?" ... Не важно, что это за значок.

Информацию об иконке вы можете прочитать в других сообщениях!

0 голосов
/ 20 мая 2011

Реальность такова, что вы можете использовать любой, и это будет выглядеть хорошо.Но это не значит, что он спроектирован правильно.

Очистка всех данных пользователя должна иметь значок предупреждения.

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

...