Как показать текст, связанный с пунктом меню в строке состояния, используя MainMenu? - PullRequest
2 голосов
/ 13 февраля 2011

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

В прошлом я добивался этого в winforms, создавая поставщик расширений, который добавляет свойство строкис пользовательским текстом для каждого пункта меню, который будет отображаться в строке состояния.Это было достигнуто путем добавления обработчиков событий к событиям MenuStrips MouseEnter и MouseLeave для отображения и удаления текста.

Проблема, с которой я столкнулсяв том, что я теперь использую элемент управления MainMenu вместо MenuStrip, и поскольку он не является производным от элемента управления, у него нет событий MouseEnter и MouseLeave .

В MainMenu есть событие Click, которое означает, что я могу отображать свой текст в строке состояния, но, насколько я вижу, нет способа определить, когда мышь покинула пункт меню, и удалить текст изstatusbar.

Мой вопрос: как я могу реализовать этот шаблон пользовательского интерфейса, используя элемент управления MainMenu?В частности, я хотел бы знать, как определить, когда мышь покинула пункт меню, чтобы текст можно было удалить из строки состояния.

Примечание. Элемент управления MenuStrip не является опцией, так как он не использует внешний вид операционной системы, и я пытаюсь максимально приблизить мое приложение к этому.

1 Ответ

0 голосов
/ 13 февраля 2011

Каждый MenuItem имеет Выбрать событие.Подключитесь к нему и измените свой текст статуса соответственно.

Ну, что касается обнаружения выхода из элемента, используйте таймер, запомните Rect из последних введенных MenuItem, затем когда (проверьте событие таймера) гаснет, отмени текст.Это не красиво, но может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...