У меня проблема, какой дизайнер не добавляет унаследованный ContextMenuStrip
в components
. Вот как воспроизвести проблему:Дизайнер и унаследованный ContextMenuStrip
- Создать новый проект (приложение для форм окон).
Добавить в виде
ContextMenuStrip
с помощью конструктора, он будет генерировать это:private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); ... }
Создать
MyContextMenuStrip
класс:public class MyContextMenuStrip : ContextMenuStrip { }
Compile и добавить к форме
MyContextMenuStrip
с помощью конструктора, он будет генерировать это:private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.myContextMenuStrip1 = new WindowsFormsApplication1.MyContextMenuStrip(); ... }
WTF? Почему он не добавляет MyContextMenuStrip
к компонентам ???
И мне нужно, чтобы меню было в components
для моего менеджера локализации (для автоматического перевода меню). Я забыл какой-то атрибут, интерфейс или переопределить?
Спасибо, уже шли другой путь (перечисляя управление и проверяя их 'Control.ContextMenuStrip'), но он не работает хорошо (если' MyContextMenuStrip' не назначается ни одному из элементов управления и предполагается, что он будет показан программно, тогда я не могу его найти) .. а потом вы пришли here = D – Sinatr
@Sinatr Спасибо, я кое-что узнал, и ваш вопрос очень хорошо выложен. –