Какие-нибудь хорошие альтернативы для MessageBox в WinForms?

Программа WinForms неизбежно отправит уведомление пользователю. Существует два типа уведомлений:

  • Важно: пользователь должен принять меры
  • Не важно: вроде как "что-то происходит, и вы можете обратить внимание".

Довольно часто MessageBox используется для обоих типов. Но недавно я обнаружил, что MessageBox отчасти раздражает: он крадет фокус пользователя, и пользователь должен щелкнуть, чтобы отклонить его. Я хочу знать, каковы альтернативы MessageBox и их плюсы / минусы?

Для начала вот некоторая идея:
Строка состояния: не легко отображать длинные уведомления
Уведомление панели задач: люди думают, что это зло, так как большинство всплывающих окон интернет-рекламы используют этот подход?
Плавающая строка состояния: Chrome/IE9/Evernote используют аналогичную плавающую строку состояния, которая скрыта, когда нет адреса ссылки или сообщения.

  • Пользовательский интерфейс Chrome: инфобар и пузырь состояния
  • IE9: панель уведомлений

1 ответ

Мы реализовали механизм, аналогичный уведомлению на панели задач, но размещенный в некоторых координатах внутри элемента управления WinForms.

Это имеет некоторые преимущества:

  • У вас есть некоторый контекст о том, где (местоположение) отображается уведомление и почему.
  • Он не модальный, поэтому он не блокирует графический интерфейс.
  • Это легко реализовать, используя собственную форму без границ.
  • Вы можете разместить его где угодно.
  • Вы можете показать метку ссылки с кратким объяснением и показать справку, другие значки или связать некоторые действия, если пользователю нужны дальнейшие объяснения. Пользовательский опыт улучшается.

Но я рекомендую использовать уведомления только для информационных сообщений.

Вы должны принять во внимание некоторые советы по поводу окна сообщений:

  • Это стандартный способ показать информацию пользователю.
  • Это должен быть пользователь, чтобы уведомить об ошибке или предупреждении. Окно сообщений гарантирует, что пользователь, по крайней мере, нажал кнопку ОК. Таким образом, пользователь осознает, что что-то происходит. Да, возможно, он не прочитал сообщение, но при аренде он увидел ошибку или предупреждение.
  • Возможно, что пользователь игнорирует другие механизмы отчетности.

Надеюсь, поможет.

Я работал над решением C# WinForms, используя элемент управления WebBrowser в форме.

На данный момент у него есть три режима: подсказка; Подсказка обратного отсчета; Таймер обратного отсчета и подсказка со списком (поле).

Использование элемента управления веб-браузер позволяет использовать HTML, что дает вам свободный выбор шрифтов; Цвета и размеры.

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

То, что у меня есть, работает и состоит из двух частей: дизайнера и самой подсказки.

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

Другие вопросы по тегам