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

В этой статье приводятся сведения о том, как сделать так, чтобы объект UserControl действовал в качестве контейнера элемента управления во время конструирования после добавления объекта UserControl в форму Windows.

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

Аннотация

Эта статья относится к пространству имен библиотеки классов Microsoft .NET Framework System.ComponentModel .

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

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

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

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

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

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

    1. Запустите Visual Studio.
    2. В меню Файл выберите пункт Создать и затем пункт Проект.
    3. В разделе типы проектоввыберите Visual C#, а затем щелкните Библиотека элементов управления Windows Forms в разделе шаблоны.
  2. Назовите проект контаинерусерконтрол. По умолчанию 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. Перетащите элемент управления "Кнопка" из панели элементов в элемент управления UserControl1.

Примечание

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

Ссылки

Для получения дополнительных сведений посетите страницу веб-сайт Майкрософт: Парентконтролдесигнер Class.