Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Con Windows Forms, puede crear controles nuevos o modificar controles existentes a través de la herencia. En este artículo se resaltan las diferencias entre las formas de crear nuevos controles y se proporciona información sobre cómo elegir un tipo determinado de control para el proyecto.
Clase de control base
La Control clase es la clase base para los controles de Windows Forms. Proporciona la infraestructura necesaria para la visualización visual en aplicaciones de Windows Forms y proporciona las siguientes funcionalidades:
- Expone un identificador de ventana.
- Administra el enrutamiento de mensajes.
- Proporciona eventos de mouse y teclado, y muchos otros eventos de interfaz de usuario.
- Proporciona características avanzadas de diseño.
- Contiene muchas propiedades específicas de la presentación visual, como ForeColor, BackColor, Heighty Width.
Dado que la clase base proporciona gran parte de la infraestructura, es relativamente fácil desarrollar sus propios controles de Windows Forms.
Cree su propio control
Hay tres tipos de controles personalizados que puede crear: controles de usuario, controles extendidos y controles personalizados. La tabla siguiente le ayuda a decidir qué tipo de control debe crear:
| Si... | Crear un ... |
|---|---|
|
Diseñe un control de usuario heredando de System.Windows.Forms.UserControl. |
|
Extienda un control heredando de un control específico de Windows Forms. |
|
Cree un control personalizado heredando de System.Windows.Forms.Control. |
Controles de usuario
Un control de usuario es una colección de controles de Windows Forms presentados como un único control para el consumidor. Este tipo de control se conoce como un control compuesto. Los controles contenidos se denominan controles constituyentes.
Un control de usuario contiene toda la funcionalidad inherente asociada a cada uno de los controles contenidos de Windows Forms y permite exponer y enlazar sus propiedades de forma selectiva. Un control de usuario también proporciona una gran cantidad de funcionalidad de control de teclado predeterminada sin ningún esfuerzo de desarrollo adicional por su parte.
Por ejemplo, se podría crear un control de usuario para mostrar los datos de dirección del cliente de una base de datos. Este control incluiría un DataGridView control para mostrar los campos de la base de datos, un BindingSource control para manejar el enlace a un origen de datos y un BindingNavigator control para desplazarse por los registros. Puede exponer de forma selectiva las propiedades de enlace de datos y puede empaquetar y reutilizar todo el control de la aplicación a la aplicación. Para obtener un ejemplo de este tipo de control de usuario, vea Cómo: Aplicar atributos en controles de Windows Forms.
Para obtener más información, consulte Información general sobre el control de usuario.
Controles extendidos
Puede derivar un control heredado de cualquier control de Windows Forms existente. Con este enfoque, puede mantener toda la funcionalidad inherente de un control de Windows Forms y, a continuación, ampliar esa funcionalidad agregando propiedades personalizadas, métodos u otras características. Con esta opción, puede invalidar la lógica de pintura del control base y, a continuación, ampliar su interfaz de usuario cambiando su apariencia.
Por ejemplo, puede crear un control derivado del Button control que realiza un seguimiento de cuántas veces un usuario ha realizado clic en él.
En algunos controles, también puede agregar una apariencia personalizada a la interfaz gráfica de usuario del control reemplazando el OnPaint método de la clase base. Para un botón extendido que realiza un seguimiento de los clics, puede sobrescribir el OnPaint método para llamar a la implementación base de OnPaint, y luego dibujar el recuento de clics en una esquina del área de cliente del control Button.
Para obtener un ejemplo de extensión de un control, vea Extender un control existente.
Controles personalizados
Otra manera de crear un control es hacerlo prácticamente desde cero heredando de Control. La Control clase proporciona toda la funcionalidad básica que requieren los controles, incluidos los eventos de control de mouse y teclado, pero no hay ninguna funcionalidad o interfaz gráfica específica del control.
La creación de un control mediante la herencia de la Control clase requiere más pensamiento y esfuerzo que heredar de UserControl o un control de Windows Forms existente. Dado que se deja una gran cantidad de implementación para usted, el control puede tener una mayor flexibilidad que un control compuesto o extendido, y puede adaptar su control para satisfacer sus necesidades exactas.
Para implementar un control personalizado, debe escribir código para el OnPaint método del control , que controla cómo se dibuja visualmente el control. También debe escribir los comportamientos específicos de las funciones para su control. También puede sobrescribir el método WndProc y gestionar directamente los mensajes de Windows. Esta es la manera más eficaz de crear un control, pero para usar esta técnica de forma eficaz, debe estar familiarizado con la API de Microsoft Win32.
Un ejemplo de un control personalizado es un control de reloj que duplica la apariencia y el comportamiento de un reloj analógico. Se invoca la pintura personalizada para hacer que las manos del reloj se muevan en respuesta a Tick eventos de un componente interno Timer .
Para obtener más información, consulte Creación de un control personalizado simple.
Controles ActiveX
Aunque la infraestructura de Windows Forms se ha optimizado para hospedar controles de Windows Forms, todavía puede usar controles ActiveX. Hay compatibilidad con esta tarea en Visual Studio. Para obtener más información, vea How to: Add ActiveX Controls to Windows Forms.
Advertencia
Los controles ActiveX no son totalmente compatibles con .NET. Los controles ActiveX siguen siendo totalmente compatibles con .NET Framework.
Experiencia de diseño personalizada
Si necesita implementar una experiencia personalizada en tiempo de diseño, puede crear su propio diseñador. Para los controles compuestos, derive su clase de diseñador personalizada de la clase ParentControlDesigner o de la clase DocumentDesigner. Para los controles extendidos y personalizados, derive la clase de diseñador personalizada de la ControlDesigner clase .
Use para asociar el DesignerAttribute control al diseñador.
La siguiente información no está actualizada, pero puede ayudarle.
.NET Desktop feedback