Проблема поведения ContextMenuStrip

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

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

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

Любые идеи, что мне здесь не хватает?

Спасибо, Энди


person Community    schedule 05.02.2009    source источник
comment
Можете ли вы опубликовать код того, как вы показываете ContextMenu. Метод ShowContextMenu имеет несколько перегрузок, и возможно, вы просто используете неправильный.   -  person BFree    schedule 06.02.2009


Ответы (1)


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

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

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

person Community    schedule 10.02.2009