Какие-нибудь хорошие альтернативы для MessageBox в WinForms?
Программа WinForms неизбежно отправит уведомление пользователю. Существует два типа уведомлений:
- Важно: пользователь должен принять меры
- Не важно: вроде как "что-то происходит, и вы можете обратить внимание".
Довольно часто MessageBox используется для обоих типов. Но недавно я обнаружил, что MessageBox отчасти раздражает: он крадет фокус пользователя, и пользователь должен щелкнуть, чтобы отклонить его. Я хочу знать, каковы альтернативы MessageBox и их плюсы / минусы?
Для начала вот некоторая идея:
Строка состояния: не легко отображать длинные уведомления
Уведомление панели задач: люди думают, что это зло, так как большинство всплывающих окон интернет-рекламы используют этот подход?
Плавающая строка состояния: Chrome/IE9/Evernote используют аналогичную плавающую строку состояния, которая скрыта, когда нет адреса ссылки или сообщения.
- Пользовательский интерфейс Chrome: инфобар и пузырь состояния
- IE9: панель уведомлений
1 ответ
Мы реализовали механизм, аналогичный уведомлению на панели задач, но размещенный в некоторых координатах внутри элемента управления WinForms.
Это имеет некоторые преимущества:
- У вас есть некоторый контекст о том, где (местоположение) отображается уведомление и почему.
- Он не модальный, поэтому он не блокирует графический интерфейс.
- Это легко реализовать, используя собственную форму без границ.
- Вы можете разместить его где угодно.
- Вы можете показать метку ссылки с кратким объяснением и показать справку, другие значки или связать некоторые действия, если пользователю нужны дальнейшие объяснения. Пользовательский опыт улучшается.
Но я рекомендую использовать уведомления только для информационных сообщений.
Вы должны принять во внимание некоторые советы по поводу окна сообщений:
- Это стандартный способ показать информацию пользователю.
- Это должен быть пользователь, чтобы уведомить об ошибке или предупреждении. Окно сообщений гарантирует, что пользователь, по крайней мере, нажал кнопку ОК. Таким образом, пользователь осознает, что что-то происходит. Да, возможно, он не прочитал сообщение, но при аренде он увидел ошибку или предупреждение.
- Возможно, что пользователь игнорирует другие механизмы отчетности.
Надеюсь, поможет.
Я работал над решением C# WinForms, используя элемент управления WebBrowser в форме.
На данный момент у него есть три режима: подсказка; Подсказка обратного отсчета; Таймер обратного отсчета и подсказка со списком (поле).
Использование элемента управления веб-браузер позволяет использовать HTML, что дает вам свободный выбор шрифтов; Цвета и размеры.
Я бы поделился тем, что у меня есть, если бы я только знал, как поделиться решением, а не фрагментом кода.
То, что у меня есть, работает и состоит из двух частей: дизайнера и самой подсказки.
Если администратор свяжется со мной, я могу предоставить ссылку для скачивания, и они смогут просмотреть, что они думают.