Compartilhar via


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 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 jogado em um formulário e manipulado em uma superfície de design. O suporte ao tempo de design de base para componentes é integrado ao .NET. Um desenvolvedor de componentes não precisa fazer nenhum trabalho adicional para aproveitar a funcionalidade de base do tempo de design.

Um controle é semelhante a um componente, pois ambos são projetáveis. No entanto, um controle fornece uma interface do usuário, enquanto um componente não. Um controle deve derivar de uma das classes de controle base: Control ou Control.

Quando criar um componente

Se sua classe for usada em uma superfície de design (como o Windows Forms ou o Web Forms Designer), mas não tiver nenhuma interface do usuário, ela deverá ser um componente e implementar IComponent, ou derivar de uma classe que implementa IComponentdireta ou indiretamente.

As Component classes e as MarshalByValueComponent classes são implementações base da IComponent interface. A principal diferença entre essas classes é que a classe Component é processada por referência, enquanto IComponent é processada por valor. A lista a seguir fornece diretrizes amplas para implementadores.

  • Se o componente precisar ter o marshaling realizado por referência, derive de Component.

  • Se o componente precisar ter o marshaling realizado por valor, derive de MarshalByValueComponent.

  • Se o seu componente não puder derivar de uma das implementações de base devido a herança única, implemente IComponent.

Classes de componente

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, associação a fontes de dados e componentes de licenciamento.

As classes principais de componente são:

Algumas das classes usadas para licenciamento de componentes são:

Classes frequentemente utilizadas para descrever e manter 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.

Solução de problemas de controle e criação de componentes
Explica como corrigir problemas comuns.

Consulte também