2

Я создал несколько пользовательских элементов управления, которые использовали несколько объектов GroupBox с помощью Visual Studio Designer, а позже решили, что я хочу иметь возможность контролировать цвет границы GroupBox (функция, которую вы, похоже, не можете сделать со стандартом GroupBox). Поэтому я создал новый пользовательский элемент управления GroupBoxPlus, который наследует GroupBox и переопределяет OnPaint, чтобы нарисовать мою границу. Есть ли способ конвертировать все мои GroupBoxs в элементы управления GroupBoxPlus с помощью визуального дизайнера студии? Если бы я создавал ui вручную из кода, я бы просто нашел и заменил GroupBox на GroupBoxPlus, но так как я использовал конструктора, я полагаю, что это приведет к ошибке Visual Studio при попытке скомпилировать. Есть ли в любом случае их конвертировать, а затем удалять старые групповые ящики и перетаскивать новые и перенастраивать все свойства? Я использую vb.net и winforms.Как изменить тип элемента управления WinForms на новый тип, который является производным от исходного типа при использовании Visual Studio Designer?

+0

Возможный дубликат [Могу ли я быстро заменить компоненты на компоненты пользовательской темы?] (Http://stackoverflow.com/questions/22121814/can-i-quickly-replace-my-components-to-a-custom -Темы-компонента) –

ответ

2

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

Вместо:

Dim groupBox as new GroupBox(); 

Вы изменили бы что:

Dim groupBox as new GroupBoxPlus(); 

Вы можете просто искать 'как новый GroupBox();' и заменить на «как новый GroupBoxPlus()». Изменение созданного кода конструктора VS не вызовет проблем в этом случае. Если вы выполняете поиск-замените все, и все не работает, нажатие Ctrl-Z отменяет все изменения, которые изменили функция find-replace.

Если вы действительно беспокоитесь о том, чтобы выполнять массовое обнаружение, замените все, а затем просто сделайте копию своих файлов кода или используйте источник управления перед заменой.

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