Показать / скрыть ContextMenuStrip вне формы - PullRequest
0 голосов
/ 19 июля 2009

Я создаю простое приложение-менеджер буфера обмена. Контролирует содержимое буфера обмена. Когда происходит изменение (через цикл сообщений win api), он запускает метод для захвата текущего содержимого буфера обмена и создает новый объект с именем clipboarditem. Затем следует создание ContextMeuStrip, которое состоит из нескольких ранее созданных элементов буфера обмена. Меню пунктов доступно горячей клавишей. Это меню отображается в определенном месте на экране itemsMenu.Show (caretPosition) ;, с .Focus (), я хочу, чтобы оно исчезло после потери фокуса (например, нажав на другое место на экране или переключать приложения с помощью Alt-Tab). Нашел событие OnLoseFocus, но я не думаю, что оно работает должным образом, потому что меню даже не появится.

Как заставить ContextMenuStrip исчезнуть после потери фокуса и как предотвратить отображение ContextMenuStrip в taskabr?

Извините за мои языковые навыки:)

1 Ответ

0 голосов
/ 20 июля 2009

После очень быстрого просмотра событий, содержащихся в ContextMenuStrip, вы пробовали событие MouseCaptureChanged? Это может помочь вам с проблемой потери фокуса.

Для показа в проблеме на панели задач, вы установили "ShowInTaskbar" в false на форме, у вас есть свой ContextMenuStrip (если он у вас есть на форме)?

...