Compartir a través de


Crear y utilizar componentes en Visual Basic

Un componente es una clase que implementa la interfaz System.ComponentModel.IComponent o que deriva directa o indirectamente de una clase que implementa IComponent. Un componente de .NET es un objeto que se puede reutilizar, puede interactuar con otros objetos y proporciona control sobre recursos externos y sobre la compatibilidad en tiempo de diseño.

Una característica importante de los componentes es que se pueden diseñar, lo que significa que se puede usar una clase que es un componente en el entorno de desarrollo integrado de Visual Studio. Los componentes se pueden agregar al cuadro de herramientas, se pueden arrastrar y soltar en un formulario y se pueden manipular en una superficie de diseño. La compatibilidad en tiempo de diseño de los componentes está integrada en .NET. Un desarrollador de componentes no tiene que efectuar ninguna tarea adicional para aprovechar la funcionalidad base del tiempo de diseño.

Un control es similar a un componente, ya que ambos se pueden diseñar, con la diferencia de que un control proporciona una interfaz de usuario, mientras que un componente no. Un control debe derivar de una de las clases de control base: Control o Control.

Cuándo se debe crear un componente

Si la clase se va a usar en una superficie de diseño (como en Windows Forms o en el Diseñador de Web Forms) pero no tiene ninguna interfaz de usuario, debe ser un componente y debe implementar IComponent, o bien debe derivarse de una clase que implemente directa o indirectamente IComponent.

Las clases Component y MarshalByValueComponent son implementaciones base de la interfaz IComponent. La principal diferencia entre estas clases es que la clase Component se serializa por referencia, mientras que IComponent se serializa por valor. En la lista siguiente se proporcionan directrices generales para los implementadores.

  • Si el componente se tiene que serializar por referencia, se debe derivar de Component.

  • Si el componente se tiene que serializar por valor, se debe derivar de MarshalByValueComponent.

  • Si el componente no se puede derivar de una de las implementaciones base debido a la herencia única, implemente IComponent.

Clases de componentes

El espacio de nombres System.ComponentModel proporciona clases que se usan para implementar el comportamiento de los componentes y controles en tiempo de diseño y en tiempo de ejecución. Este espacio de nombres incluye las clases bases y las interfaces para implementar atributos y convertidores de tipos, enlazarlos con orígenes de datos y generar licencias para los componentes.

Las clases de componentes básicas son las siguientes:

Algunas de las clases usadas para la generación de licencias de componentes son las siguientes:

Clases usadas habitualmente para describir y conservar componentes.

  • TypeDescriptor. Proporciona información sobre las características de un componente, como sus atributos, propiedades y eventos.

  • EventDescriptor. Proporciona información sobre un evento.

  • PropertyDescriptor. Proporciona información sobre una propiedad.

Solución de problemas relacionados con la creación de controles y componentes
Se explica cómo solucionar problemas comunes.

Vea también