Отображение всплывающих подсказок по отключенным пунктам меню или альтернативным решениям в .NET

#.net #user-interface #event-handling #tooltip #menuitem

#.net #пользовательский интерфейс #обработка событий #всплывающая подсказка #menuitem

Вопрос:

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

Моей первоначальной мыслью было (поскольку события не запускаются при отключенных элементах управления) вместо этого вызвать событие MouseMove в родительском меню и отобразить всплывающую подсказку при отключенном элементе управления. Но событие, похоже, не распространяется вверх по родительскому меню, как ожидалось. Обычно это работает именно так, верно? Например, отключенные события текстового поля переместились бы на родительскую панель?

PS. Я все равно начинаю думать, что это плохая идея дизайна пользовательского интерфейса? Какой способ сделать это лучше?

Ответ №1:

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

Ответ №2:

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

Однако я выяснил, как это сделать для отключенных кнопок несколько лет назад. Я знаю, что это не совсем ваша проблема, но она достаточно похожа, чтобы сообщение в блоге, которое я написал, могло быть вам полезно.

Комментарии:

1. Лучшая ссылка: sixgun.wordpress.com/2006/03/10/tooltips-on-disabled-buttons

2. Обе ссылки недоступны. Запись в блоге все еще где-то существует, Энтони?

Ответ №3:

Вы должны установить ShowItemToolTips = true на содержащем MenuStrip . Всплывающая подсказка будет отображаться, даже если ToolStripMenuItem отключен (но она не будет отображаться, если отключен весь MenuStrip).

Это старый вопрос, поэтому функциональность могла измениться, но OP, вероятно, совершил ту же ошибку, что и я — моя всплывающая подсказка не отображалась, поэтому я ошибочно предположил, что это потому, что ToolStripMenuItem был отключен.

Просто хотел указать на это для дальнейшего использования.