Criando e usando componentes no Visual Basic
Um componente é uma classe que implementa a System.ComponentModel.IComponent interface ou que deriva direta ou indiretamente de uma classe que implementa IComponent. Um componente .NET é um objeto que é reutilizável, pode interagir com outros objetos e fornece controle sobre recursos externos e suporte em tempo de design.
Um recurso importante dos componentes é que eles são projetáveis, o que significa que uma classe que é um componente pode ser usada no ambiente de desenvolvimento integrado do Visual Studio. Um componente pode ser adicionado à Caixa de Ferramentas, arrastado e solto em um formulário e manipulado em uma superfície de design. O suporte básico em tempo de design para componentes é incorporado ao .NET. Um desenvolvedor de componentes não precisa fazer nenhum trabalho adicional para aproveitar a funcionalidade de tempo de design base.
Um controle é semelhante a um componente, pois ambos são projetáveis. No entanto, um controle fornece uma interface de usuário, enquanto um componente não. Um controlo deve derivar de uma das classes de controlo de base: Control ou Control.
Quando criar um componente
Se sua classe será usada em uma superfície de design (como o Windows Forms ou o Web Forms Designer), mas não tiver interface de usuário, ela deverá ser um componente e implementar IComponent, ou derivar de uma classe que implementa IComponentdireta ou indiretamente .
As Component classes e MarshalByValueComponent são implementações básicas da IComponent interface. A principal diferença entre essas classes é que a Component classe é organizada por referência, enquanto IComponent é organizada por valor. A lista a seguir fornece diretrizes gerais para os implementadores.
Se o seu componente precisa ser organizado por referência, derive de Component.
Se o seu componente precisa ser organizado por valor, derive de MarshalByValueComponent.
Se o componente não puder derivar de uma das implementações base devido a uma única herança, implemente IComponento .
Classes de componentes
O System.ComponentModel namespace fornece classes que são usadas para implementar o comportamento em tempo de execução e tempo de design de componentes e controles. Esse namespace inclui as classes base e interfaces para implementar atributos e conversores de tipo, vinculação a fontes de dados e componentes de licenciamento.
As classes de componentes principais são:
Component. Uma implementação base para a IComponent interface. Essa classe permite o compartilhamento de objetos entre aplicativos.
MarshalByValueComponent. Uma implementação base para a IComponent interface.
Container. A implementação base para a IContainer interface. Esta classe encapsula zero ou mais componentes.
Algumas das classes usadas para licenciamento de componentes são:
License. A classe base abstrata para todas as licenças. Uma licença é concedida a uma instância específica de um componente.
LicenseManager. Fornece propriedades e métodos para adicionar uma licença a um componente e gerenciar um LicenseProviderarquivo .
LicenseProvider. A classe base abstrata para implementar um provedor de licença.
LicenseProviderAttribute. Especifica a LicenseProvider classe a ser usada com uma classe.
Classes comumente usadas para descrever e persistir componentes.
TypeDescriptor. Fornece informações sobre as características de um componente, como seus atributos, propriedades e eventos.
EventDescriptor. Fornece informações sobre um evento.
PropertyDescriptor. Fornece informações sobre uma propriedade.
Secções Relacionadas
Solução de problemas de controle e criação de componentes
Explica como corrigir problemas comuns.