Recomendaciones sobre tipos de controles

Actualización: noviembre 2007

.NET Framework ofrece la posibilidad de programar e implementar nuevos controles. Además de los conocidos controles de usuario, comprobará que puede escribir controles personalizados que realizan su propia representación y que incluso pueden extender la funcionalidad de controles existentes por medio de la herencia. La decisión sobre qué tipo de control se va a crear puede ser difícil. Esta sección resalta las diferencias entre los diferentes tipos de controles de los cuales es posible heredar y explica cuestiones relativas al tipo de control que se puede elegir para un proyecto.

Nota:

Si desea crear un control para utilizarlo en los formularios Web Forms, vea Desarrollar controles de servidor ASP.NET personalizados.

Herencia de un control de formularios Windows Forms

Puede derivar un control heredado de cualquier control existente de formularios Windows Forms. Este método permite conservar toda la funcionalidad inherente a un control de formularios Windows Forms y, a continuación, ampliarla agregando propiedades, métodos y otras funcionalidades personalizadas. Por ejemplo, podría crear un control derivado de TextBox que sólo admita números y que convierta automáticamente la información introducida en valores. Tal control podría contener código de validación, al que se llamaría siempre que cambiara el texto del cuadro de texto, y podría tener una propiedad adicional: Value. En algunos controles, también es posible agregar una apariencia personalizada a la interfaz gráfica del control; para ello, deberá reemplazar el método OnPaint de la clase base.

Herede de un control de formularios Windows Forms si:

  • La mayor parte de la funcionalidad necesaria es ya idéntica a la de un control de formularios Windows Forms existente.

  • No necesita una interfaz gráfica personalizada o desea diseñar una nueva interfaz gráfica para un control existente.

Herencia de la clase UserControl

Un control de usuario es una colección de controles de formularios Windows Forms encapsulados en un contenedor común. El contenedor conserva toda la funcionalidad inherente asociada a cada uno de los controles de formularios Windows Forms y permite exponer y enlazar sus propiedades de forma selectiva. Un ejemplo de control de usuario podría ser un control generado con el propósito de mostrar los datos de la dirección de los clientes procedentes de una base de datos. Este control incluiría varios cuadros de texto para mostrar los campos, así como controles de botón para navegar por los registros. Las propiedades de enlace de datos podrían exponerse de forma selectiva; todo el control podría empaquetarse y reutilizarse en diferentes aplicaciones.

Herede de la clase UserControl si:

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

Herencia de la clase Control

Otra forma de crear un control consiste en crear uno prácticamente desde el principio mediante la herencia de Control. La clase Control proporciona toda la funcionalidad básica que requieren los controles (por ejemplo, los eventos), pero no proporciona una funcionalidad ni una interfaz gráfica específicas para el control. Crear un control mediante la herencia de la clase Control requiere mucho más esfuerzo que heredar de un control de usuario o de un control de formularios Windows Forms existente. El creador debe escribir código para el evento OnPaint del control, así como todo el código necesario para sus funciones específicas. No obstante, permite una mayor flexibilidad, lo que permite crear controles a medida que se ajusten exactamente a las necesidades. Un ejemplo de control personalizado es un control de reloj que duplique la apariencia y el funcionamiento de un reloj analógico. Sería necesario invocar una representación personalizada para hacer que las manecillas de reloj se movieran en respuesta a eventos Tick procedentes de un componente temporizador interno.

Herede de la clase Control si:

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

  • Necesita implementar funcionalidad personalizad que no se encuentre disponible por medio de controles estándar.

Vea también

Tareas

Cómo: Desarrollar un control de formularios Windows Forms sencillo

Conceptos

Variedades de controles personalizados