Проблема поведения ContextMenuStrip - PullRequest
1 голос
/ 05 февраля 2009

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

1) Меню не появляется рядом с указателем мыши, оно смещено вниз и вправо. Похоже, что это связано с положением метки в родительском элементе управления (элемент управления рисунками), а не с формой.

2) Меню не исчезает, когда я нажимаю на что-то, кроме меню.

Есть идеи, что мне здесь не хватает?

Спасибо, Andy

1 Ответ

1 голос
/ 10 февраля 2009

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

В конечном итоге я изменил структуру, добавив статический экземпляр меню в форму, а затем просто соединил свойство label.ContextMenuStrip с этим статическим экземпляром. Все хорошо с таким подходом.

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

...