Должен ли я использовать значок предупреждения или значок вопросительного знака в окне сообщения 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);

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

Ответы

Ответ 1

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

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

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

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

Значки значков вопроса

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

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

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

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

Ответ 5

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

...,MessageBoxDefaultButton.Button2

Ответ 6

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

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

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

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