Создание и использование компонентов в Visual Basic
Компонент — это класс, который реализует интерфейс System.ComponentModel.IComponent или прямо либо косвенно наследуется из класса, реализующего IComponent. Компонент .NET является объектом, который можно использовать повторно, способным взаимодействовать с другими объектами, предоставляющим контроль над внешними ресурсами и поддержку во время разработки.
Важной особенностью компонентов является то, что они поддерживают проектирование, то есть класс, являющийся компонентом, может использоваться в интегрированной среде разработки Visual Studio. Компонент можно добавить на панель элементов, перетащить в форму, кроме того, с ним можно выполнять различные действия в области конструктора. Базовая поддержка режима разработки компонентами встроена в .NET. Разработчику компонентов не нужно прикладывать дополнительные усилия, чтобы воспользоваться базовыми функциями во время разработки.
Элемент управления похож на компонент, в том смысле, что оба поддерживают проектирование. Тем не менее элемент управления предоставляет пользовательский интерфейс, а компонент — нет. Элемент управления должен быть производным от одного из базовых классов элементов управления: Control или Control.
Когда требуется создание компонента
Если ваш класс будет использоваться в области конструктора (например, конструктора Windows Forms или веб-форм), но у него отсутствует интерфейс пользователя, он должен быть компонентом и реализовывать интерфейс IComponent или быть производным от класса, который непосредственно или косвенно реализует IComponent.
Классы Component и MarshalByValueComponent являются базовыми реализациями интерфейса IComponent. Основное различие между этими классами заключается в том, что Component класс маршалируется по ссылке, в то время как IComponent маршалируется по значению. Ниже приведены общие указания по реализации.
Если компоненту необходимо маршалировать по ссылке, наследуется от Component.
Если компоненту необходимо маршалировать по значению, наследуется от MarshalByValueComponent.
Если компонент не может быть производным от одной из базовых реализаций из-за одиночного наследования, реализуйте IComponent.
Классы компонентов
Пространство имен System.ComponentModel предоставляет классы, используемые для реализации поведения компонентов и элементов управления во время разработки и выполнения. Это пространство имен содержит базовые классы и интерфейсы для реализации атрибутов и преобразователей типов, привязки к источникам данных и лицензирования компонентов.
Ниже перечислены основные классы компонентов.
Component. Базовая реализация для интерфейса IComponent. Этот класс обеспечивает совместное использование объектов несколькими приложениями.
MarshalByValueComponent. Базовая реализация для интерфейса IComponent.
Container. Базовая реализация для интерфейса IContainer. Этот класс инкапсулирует нуль или более компонентов.
Ниже приведены некоторые классы, используемые для лицензирования компонентов.
License. Абстрактный базовый класс для всех лицензий. Лицензия предоставляется конкретному экземпляру компонента.
LicenseManager. Предоставляет свойства и методы для добавления лицензии в компонент и для управления поставщиком LicenseProvider.
LicenseProvider. Абстрактный базовый класс для реализации поставщика лицензий.
LicenseProviderAttribute. Указывает класс LicenseProvider для использования с каким-либо классом.
Ниже приведены классы, которые обычно используются для описания и постоянного хранения компонентов.
TypeDescriptor. Предоставляет сведения о характеристиках компонента, таких как его атрибуты, свойства и события.
EventDescriptor. Предоставляет сведения о событии.
PropertyDescriptor. Предоставляет сведения о свойстве.
Связанные разделы
Разрешение вопросов, связанных с созданием элементов управления и компонентов
Способы решения распространенных проблем.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по