Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > ContextMenuStrip - динамическое заполнение


Автор: theHelg 9.9.2009, 14:55
Добрый день!

у меня в приложении есть несколько DataGridView.
Хочу кинуть на форму пустой ContextMenuStrip и при вызове заполнять соответствующими пунктами.

Не могу разобраться с как это лучше всего сделать?

Я думал, что на DataGridView будет некое событие - типа вызов ContextMenuStrip - есть только _CellContextMenuStripNeeded - но как-то видимо не совсем то...

А если смотреть в ContextMenuStrip _Opening - то не понятно, кто его вызвал...

Как лучше всего разрулить?

Автор: mrbrooks 10.9.2009, 10:05
Вообще то ContextMenuStrip связывается с тем же DataGridView через свойство последнего ContextMenuStrip.

Как ты заполнишь контексное меню - дело уже логики программы, в зависимости от ситуации.

Автор: theHelg 10.9.2009, 10:09
вот про это я и говорю - куда прикрутить эту логику??

на все 10 датагридов у меня стоит ОДНО меню.
И я хочу заполнять динамически эту менюшку каждый раз перед вызовом...

Автор: explorer 10.9.2009, 10:27
У ContextMenuStrip есть событие OnDropDownOpening. Срабатывает перед тем, как развернется меню. В этот момент его коллекцию элементов можно переделать как угодно.

Автор: theHelg 10.9.2009, 10:59
о!
вот наверно оно мне и нужно!
спасибо!!

Автор: BinaryShadow 30.9.2009, 11:07
А я бы сделал создание контекстного меню при установке фокуса на датагриде. Потому-что меню можно вызывать на одном гриде много раз, а фокус устанавливается реже.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)