Поделиться через


Использование 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, необходимо изменить конструктор userControl по умолчанию. Чтобы реализовать службы времени разработки System.ComponentModel для компонента, используйте DesignerAttribute класс пространства имен. Происходит DesignerAttribute перед объявлением класса. Инициализируется DesignerAttribute путем передачи designerTypeName designerBaseType параметров и параметров.

designerTypeName — полное имя типа конструктора, предоставляющего службы времени разработки. Передайте сочетание System.Windows.Forms.Design.ParentControlDesigner параметра и System.Design параметра designerTypeName . Класс 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. В меню Сборка выберите Построить решение.

Тестирование UserControl

  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.