Compartir a través de


Recomendaciones sobre tipos de controles

.NET Framework ofrece la posibilidad de desarrollar e implementar nuevos controles. Además de los controles de usuario conocidos, verá que ahora puede escribir controles personalizados que realizan su propia representación y que incluso pueden ampliar la funcionalidad de los controles existentes mediante herencia. Decidir qué tipo de control va a crear puede resultar confuso. En esta sección se indican las diferencias entre los distintos tipos de controles de los que puede heredar, y ofrece consideraciones sobre el tipo que deberá elegir para su proyecto.

Nota:

Si desea crear un control para usarlo en formularios Web Forms, consulte Desarrollar controles de servidor de ASP.NET personalizados.

Heredar de un control de Windows Forms

Puede derivar un control heredado de cualquier control de Windows Forms existente. Este enfoque permite conservar toda la funcionalidad inherente de un control de Windows Forms y, después, ampliarla agregando propiedades, métodos u otras funcionalidades personalizadas. Por ejemplo, podría crear un control derivado de TextBox que solo admita números y que convierta automáticamente la entrada en un valor. Este tipo de control podría contener código de validación al que se llama cada vez que cambia el texto del cuadro de texto, y podría tener una propiedad adicional, Value. En algunos controles, también puede agregar una apariencia personalizada a la interfaz gráfica del control invalidando el método OnPaint de la clase base.

Herede de un control de Windows Forms si:

  • La mayor parte de la funcionalidad que necesita es idéntica a la de un control de Windows Forms existente.

  • No necesita una interfaz gráfica personalizada o quiere diseñar un nuevo front-end gráfico para un control existente.

Heredar de la clase UserControl

Un control de usuario es una colección de controles de Windows Forms encapsulados en un contenedor común. El contenedor conserva toda la funcionalidad inherente asociada a cada uno de los controles de Windows Forms y permite exponer y enlazar sus propiedades de forma selectiva. Un ejemplo de un control de usuario podría ser un control creado para mostrar los datos de dirección de los clientes de una base de datos. Este control incluiría varios cuadros de texto para mostrar cada campo y los controles de botón para navegar por los registros. Las propiedades de enlace de datos se podrían exponer de forma selectiva y el control completo se podría empaquetar y reutilizar en distintas aplicaciones.

Herede de la clase UserControl si:

  • Quiere combinar la funcionalidad de varios controles de Windows Forms en una sola unidad reutilizable.

Heredar de la clase Control

Otra forma de crear un control consiste en crear uno prácticamente desde el principio heredando de Control. La clase Control proporciona toda la funcionalidad básica requerida por los controles (por ejemplo, los eventos), pero ninguna funcionalidad específica del control ni la interfaz gráfica. Crear un control heredando de la clase Control requiere mucho más esfuerzo que heredar de un control de usuario o de un control de Windows Forms existente. El autor debe escribir código para el evento OnPaint del control, así como código para cualquier funcionalidad específica que se necesite. Sin embargo, permite una mayor flexibilidad y puede a adaptar un control a sus necesidades exactas. Un ejemplo de un control personalizado es un control de reloj que reproduce la apariencia y el funcionamiento de un reloj analógico. Sería necesario invocar una representación personalizado para hacer que las manecillas del reloj se movieran en respuesta a los eventos Tick de un componente de temporizador interno.

Herede de la clase Control si:

  • Quiere proporcionar una representación gráfica personalizada del control.

  • Necesita implementar funcionalidad personalizada que no está disponible en los controles estándar.

Consulte también