Использование Visual C# для создания объекта UserControl в качестве контейнера элемента управления во время разработки

В этой статье содержатся сведения о том, как сделать объект UserControl контейнером элементов управления во время разработки после добавления объекта UserControl в Форму Windows Form.

Исходная версия продукта: Visual C#
Оригинальный номер базы знаний: 813450

Сводка

В этой статье описывается пространство System.ComponentModelимен библиотеки классов Microsoft платформа .NET Framework .

В этой пошаговой статье описывается, как сделать объект UserControl контейнером элементов управления во время разработки после того, как вы поместили элемент UserControl в Форму Windows Form. Могут возникнуть ситуации, когда требуется перетащить элемент управления в Элемент управления UserControl. Для этого UserControl должен выступать в качестве контейнера элементов управления.

По умолчанию объект UserControl может выступать в качестве контейнера элемента управления только при создании элемента управления. Чтобы сделать узел UserControl составным элементом управления после добавления элемента UserControl в Форму Windows Form, необходимо изменить конструктор userControl по умолчанию. Чтобы реализовать службы времени разработки DesignerAttribute для компонента, используйте класс System.ComponentModel пространства имен. Объект DesignerAttribute поставляется перед объявлением класса. Инициализируйте , DesignerAttribute передав параметры designerTypeName и designerBaseType .

designerTypeName — это полное имя типа конструктора, предоставляющего службы времени разработки. Передайте сочетание объекта System.Windows.Forms.Design.ParentControlDesigner и для System.DesigndesignerTypeName параметра . Класс ParentControlDesigner расширяет поведение userControl во время разработки.

designerBaseType — это имя базового класса для конструктора. Класс, используемый для служб времени разработки, должен реализовывать интерфейс IDesigner.

Создание элемента управления UserControl в качестве контейнера элементов управления времени разработки

  1. Создайте проект библиотеки элементов управления Windows visual C#. Для этого выполните следующие действия:

    1. Запустите Visual Studio.
    2. В меню Файл выберите пункт Создать и затем пункт Проект.
    3. В разделе Типы проектов щелкните Visual C#, а затем выберите Windows Forms библиотека элементов управления в разделе Шаблоны.
  2. Присвойте проекту имя ContainerUserControl. По умолчанию создается UserControl1.cs .

  3. В Обозреватель решений щелкните правой кнопкой мыши UserControl1.cs и выберите пункт Просмотреть код.

  4. Добавьте следующий код в раздел объявлений:

    using System.ComponentModel.Design;
    
  5. Примените System.ComponentModel.DesignerAttribute атрибут к элементу управления следующим образом:

    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
    public class UserControl1 : System.Windows.Forms.UserControl
    {
        ...
    }
    
  6. On the Build menu, click Build Solution.

Тестирование Элемента управления Пользователем

  1. Создайте проект Visual C#. Для этого выполните следующие действия:

    1. Запустите Visual Studio.
    2. В меню Файл выберите пункт Создать и затем пункт Проект.
    3. В разделе Типы проектов щелкните Visual C#, а затем выберите Windows Forms приложение в разделе Шаблоны. По умолчанию создается Form1.cs .
  2. Добавьте элемент управления UserControl1 на панель элементов.

    1. В меню Сервис выберите пункт Выбрать элементы панели элементов.
    2. На вкладке компоненты платформа .NET Framework нажмите кнопку Обзор.
    3. В поле Открыть файл найдите библиотеку DLL, созданную при создании элемента управления UserControl.
  3. Перетащите элемент UserControl1 из панели элементов (в Windows Forms) в Form1.cs.

  4. Перетащите элемент управления Button с панели элементов в UserControl1.

Примечание.

UserControl1 ведет себя как контейнер элемента управления для элемента управления Button.

Ссылки

Дополнительные сведения см. на веб-сайте Майкрософт: Класс ParentControlDesigner.