Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о том, как создать объект UserControl в качестве контейнера элементов управления во время разработки после добавления объекта UserControl в Windows Form.
Исходная версия продукта: Visual C#
Исходный номер базы знаний: 813450
Итоги
Эта статья относится к пространству System.ComponentModel
имен библиотеки классов Microsoft платформа .NET Framework.
В этой пошаговой статье описывается, как создать объект UserControl в качестве контейнера элементов управления во время разработки после добавления UserControl в Windows Form. Могут возникнуть ситуации, когда вы хотите перетащить элемент управления в UserControl. Для этого UserControl должен выступать в качестве контейнера элементов управления.
По умолчанию объект UserControl может выступать в качестве контейнера элементов управления только при создании элемента управления. Чтобы сделать узел UserControl составным элементом управления после добавления UserControl в Форму Windows, необходимо изменить конструктор userControl по умолчанию. Чтобы реализовать службы времени разработки System.ComponentModel
для компонента, используйте DesignerAttribute
класс пространства имен. Происходит DesignerAttribute
перед объявлением класса. Инициализируется DesignerAttribute
путем передачи designerTypeName
designerBaseType
параметров и параметров.
designerTypeName
— полное имя типа конструктора, предоставляющего службы времени разработки. Передайте сочетание System.Windows.Forms.Design.ParentControlDesigner
параметра и System.Design
параметра designerTypeName
. Класс ParentControlDesigner
расширяет поведение во время разработки для UserControl.
designerBaseType
— это имя базового класса для конструктора. Класс, используемый для служб времени разработки, должен реализовать интерфейс IDesigner.
Создание UserControl в качестве контейнера элементов управления во время разработки
Создайте проект библиотеки элементов управления Windows Visual C# . Для этого выполните следующие шаги.
- Запустите Visual Studio.
- В меню Файл выберите пункт Создать и затем пункт Проект.
- В разделе "Типы проектов" щелкните Visual C#, а затем выберите библиотеку элементов управления Windows Forms в разделе "Шаблоны".
Присвойте проекту имя ContainerUserControl. По умолчанию создается UserControl1.cs .
В Обозреватель решений щелкните правой кнопкой мыши UserControl1.cs и выберите команду "Просмотреть код".
Добавьте следующий код в раздел объявлений:
using System.ComponentModel.Design;
Примените атрибут к элементу
System.ComponentModel.DesignerAttribute
управления следующим образом:[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 : System.Windows.Forms.UserControl { ... }
В меню Сборка выберите Построить решение.
Тестирование UserControl
Создайте проект Visual C#. Для этого выполните следующие шаги.
- Запустите Visual Studio.
- В меню Файл выберите пункт Создать и затем пункт Проект.
- В разделе "Типы проектов" щелкните Visual C#, а затем щелкните "Приложение Windows Forms" в разделе "Шаблоны". По умолчанию создается Form1.cs .
Добавьте элемент управления UserControl1 на панель элементов.
- В меню Сервис выберите пункт Выбрать элементы панели элементов.
- На вкладке "Компоненты платформа .NET Framework" нажмите кнопку "Обзор".
- В поле "Открыть файл" найдите библиотеку DLL, созданную при создании элемента управления UserControl.
Перетащите UserControl1 из панели элементов (в Windows Forms) в Form1.cs.
Перетащите элемент управления Button из панели элементов в UserControl1.
Примечание.
UserControl1 ведет себя как контейнер управления для элемента управления Button.
Ссылки
Дополнительные сведения см. на веб-сайте Майкрософт: Класс ParentControlDesigner.