Я не большой поклонник ящиков предупреждений, в первую очередь потому, что они, как правило, портят удобство использования приложения. Как сказал Алан Купер в О лице , это равносильно тому, чтобы колотить пользователя по голове и называть его / ее идиотом.
Уведомление о неверных данных, с другой стороны, является критически важной потребностью в приложении. Прежде всего, на мой взгляд, вы должны попытаться предотвратить ввод неверных данных, если это возможно. Существует множество сторонних инструментов управления для большинства платформ (ASP.NET, .NET WinForms, WPF, Java Swing, JSP и т. Д.), Которые помогут в этом. (Хотя он не пользуется популярностью в этих областях, я на самом деле неравнодушен к Infragistics NetAdvantage.)
В зависимости от выбора платформы у вас есть много возможностей для уведомлений пользовательского интерфейса. Некоторые из них были упомянуты: Использование строки состояния вашего приложения, указание проблемы в самом поле и т. Д.
Я парень .NET, поэтому мой вклад здесь будет зависеть от окружающей среды.
В Интернете я большой поклонник средств проверки. Они предоставляют много уведомлений, без слишком навязчивого пользовательского интерфейса. Комбинируя простое свойство Text
из *
, подробное свойство ErrorMessage
и удобное размещение и визуально очевидное ValidationSummary
, я получаю всю проверку практически без кошмаров пользователя. Эти элементы управления для тех, кто не находится в .NET, выполняют различные проверки введенных данных и отображают свои свойства Text
, где бы элемент управления не находился на странице (обычно рядом с проверяемым элементом управления). Свойство ErrorMessage
имеет значение ValidationSummary
, обычно расположенное в верхней части страницы.
В среде WinForms я использовал комбинацию встроенного элемента управления ErrorProvider
и всплывающих окон в стиле Outlook в Infragistics. В моем последнем приложении WinForms я использую два разных типа всплывающих окон: один из них полупрозрачный и отображается в правом нижнем углу. Он имеет зеленый значок галочки и существует для уведомления пользователя об успешных сообщениях. (Мои пользователи не доверяют компьютерам; если они не видят какого-либо подтверждения, они думают, что машина съела их данные. Длинная история.) Эти поля исчезают через семь секунд, или пользователь может закрыть их вручную.
Второй вид всплывающих окон не имеет полупрозрачности, имеет красный значок X и появляется в правом верхнем углу. Вот где я отображаю ошибки проверки. Кроме того, элемент управления ErrorProvider
отображает значок рядом с каждым полем, в котором проверка не прошла, а при наведении курсора мыши на данный элемент управления отображается сообщение об ошибке. (Эти конкретные сообщения также есть во всплывающем окне.) Всплывающие сообщения об ошибках исчезают через пятнадцать секунд.
О единственных модальных окнах оповещений, которые я использую в этом приложении, это когда он аварийно завершает работу (действительно необработанные исключения; в настоящее время это практически невозможно) и когда пользователь хочет закрыть грязное окно.
Это некоторые из техник, которые я использовал, чтобы избежать ящиков с предупреждениями. Пользователь может игнорировать подтверждающие сообщения (что облегчает их жизнь), и его не беспокоят модальные ошибки проверки - они не могут сохранить свои данные, пока они не будут исправлены, но их не ударили по голове. И, конечно, когда это возможно, я предотвращаю ошибки валидации, используя соответствующие маскирующие элементы управления, которые не допускают неправильный ввод.