заменить существующий элемент управления на пользовательский класс .NET Winforms - PullRequest
5 голосов
/ 16 февраля 2011

У меня есть существующее приложение .NET с тоннами уже созданных элементов управления.

Теперь у меня есть новый пользовательский класс элементов управления, скажем, для кнопок (который наследуется от «Button»), с дополнительными свойствами, методами и т. Д. Отлично скомпилировано, и это видно на моей панели инструментов.

Как я могу сказать VS, что я хочу заменить существующие элементы управления на новый?

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

Есть ли способ изменить сгенерированный дизайнером код, не нарушая дизайн в VS?

Или есть ли способ сделать это, кроме как вручную удалить каждый элемент управления и создать новый? Это было бы настоящим хлопотом, поскольку все обработчики элемента управления будут удалены из кода формы при удалении элемента управления. Как:

обрабатывает myControl.Click ... обрабатывает myControl.MouseHover ... и т. Д.

Любой совет приветствуется!

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

Завершите процедуру следующим образом.

Сделайте резервную копию!

Перейдите в окно обозревателя решений (Ctrl Alt L - это ярлык) и нажмите кнопку «Показать все файлы». Выберите форму, которую вы хотите сделать контрольную замену. Нажмите на маленький треугольник, чтобы показать файл "designer.vb".

Откройте.

Поиск экземпляра элемента управления, который вы хотите заменить. Проверьте наличие:

Me.ControlToBeReplaced = New System.Windows.Forms.TypeOfControlToReplace()

Подставьте ваше определение контроля. Сделайте то же самое для каждого случая:

Friend WithEvents ControlToBeReplaced As System.Windows.Forms.TypeOfControlToReplace

Создайте свое решение

0 голосов
/ 16 февраля 2011

Вы можете выполнить поиск и заменить в VS область «Текущий проект».Убедитесь, что вы установили флажок «Поиск скрытого текста» (это будет включать сгенерированный дизайнером код).Затем попробуйте скомпилировать проект, если есть какие-либо ошибки (например, отсутствующие свойства), эти ошибки можно исправить таким же образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...