2

У меня есть панель инструментов в моем приложении и в контекстном меню с теми же параметрами, поэтому я хочу, чтобы добавить ToolStripButtons для ContextMenuStrip и ToolStrip, к сожалению, я не могу этого сделать. Даже когда я добавляю вручную элементы, оба отображаются только на одном.Как добавить в ContextMenuStrip и ToolStrip те же кнопки ToolStripButtons?

На данный момент у меня есть кнопки на панели инструментов:

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

+0

Если меню не является динамическим, вы можете просто построить 2 отдельно, а затем сделать синхронизацию для их синхронизации. –

+0

Я просто делаю элементы. Отключить вручную: toolStripItem1.Disabled = true; contextStripItem1.Disabled = true; для всех вещей, которые у меня есть, пока. –

+0

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

ответ

0

Это общая проблема, и я нашел самое простое решение, чтобы поместить «общий» код внутри MenuFeature класса, который наследует от ToolStripMenuItem.

Вы все еще должны создать 2 экземпляра этого класса, но каждый экземпляр очень легкий и имеет только код для каких-либо различий между 2 использований (т.е. элемент ContextMenu может использовать ToolStripItemDisplayStyle.ImageAndText, в то время как элемент ToolStrip может использовать ToolStripItemDisplayStyle.Image).

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

Если вы хотите, чтобы автоматически синхронизировать свойства, как Enabled/Visible/и т.д., вы можете сохранить статическую коллекцию всех экземпляров внутри конструктора, а затем обновить все элементы, используя такие события, как EnabledChanged/и т.д.. Тем не менее, я бы рекомендовал против этого, так как я обнаружил, что разные экземпляры того же меню «функция» часто нуждаются в их собственном состоянии, но это выходит за рамки этого Вопроса, те, кто интересуется тем, как я могу управлять элементами, могут комментировать на этот ответ или PM мне.

 Смежные вопросы

  • Нет связанных вопросов^_^