Копирование компонентов управления

У меня есть проект C++/CLI, в котором есть дочерняя форма с некоторыми компонентами управления. Я хотел бы скопировать все компоненты управления с их кодами на новый элемент управления Tab в основной форме. Как я могу это сделать?


person Aan    schedule 16.02.2012    source источник
comment
Просто повторите процесс, который вы сделали. Если бы это был С#, я бы предложил вместо этого использовать пользовательский элемент управления. Вы могли бы сделать что-то подобное, я подозреваю, что в C++/CLI это обходится дорого.   -  person Security Hound    schedule 16.02.2012


Ответы (1)


Вы можете выбрать все элементы управления в дизайнере (удерживайте нажатой клавишу Shift, чтобы сделать несколько выделений), а затем вырезать и вставить их на новое место: Ctrl+< kbd>X, Ctrl+V

Кроме того, вы можете открыть файл *.Designer, автоматически сгенерированный конструктором Windows Forms, и скопировать соответствующие строки кода из этого файла в другой файл кода. Найдите код, создающий и устанавливающий свойства интересующих вас элементов управления. Для каждого свойства элемента управления, для которого вы установили значение, отличное от значения по умолчанию в конструкторе, в этом файле будет соответствующая строка.

Если вместо перемещения (вырезания) элементов управления из одного места в другое вы хотите скопировать элементы управления, чтобы они отображались в нескольких местах, я настоятельно рекомендую создать UserControl который содержит все дочерние элементы управления и инкапсулирует соответствующий код. Затем вы можете просто перетащить экземпляр этого пользовательского UserControl из своего набора инструментов в любую форму, которую вы хотите, или даже динамически создавать экземпляры во время выполнения. Это согласуется с общим принципом программирования/дизайна, который заключается в том, что вы должны стремиться свести к минимуму дублирование кода при максимально возможной инкапсуляции.

person Cody Gray    schedule 16.02.2012