Должен ли я использовать значок предупреждения или значок вопросительного знака в окне сообщения Windows?

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

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

или

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

что бы вы все сказали, является более профессиональным из двух?

9 ответов


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

на документация на MB_ICONQUESTION флаг имеет это сказать (и то же самое для члена "вопрос"MessageBoxIcon перечисление):

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

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

вопросительный знак иконки

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

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

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

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

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


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


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

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

вопрос был бы больше похож на:

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

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


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


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

Если это действительно не может быть undoable, то следуйте рекомендациям Windows, как Коди, перечисленных в его ответе.


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


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

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

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


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

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