.NET Tutorial 17. Cómo cambiar la apariencia de cualquier control de Windows

Hoy vamos a ver lo simple que puede resultar cambiar el aspecto visual de prácticamente cuanlquier control de Windows.

En este ejemplo en particular vamos a cambiar la apariencia del control "TAB Control" y le daremos este nuevo aspecto:

Una de las ventajas de cambiar el aspecto de los controles, es que dicho aspecto se mantendrá en todos los sistemas operativos, por lo tanto, el aspecto de ese TAB Control "modificado" se verá igual en Windows XP, en Windows Vista o incluso en Windows Seven.

Los pasos a realizar son los siguientes:

1) Añadir un nuevo "Control de usuario" a nuestro proyecto:


(Haz click para agrandar la imagen)

una vez añadido el control, mostraremos todos los archivos en el explorador de soluciones:

Al mostrarse todos los archivos, veremos que el nuevo control que hemos añadido también dispone de otro arachivo, llamado <nombre_del_control>.Designer.vb:

2) Hacer click en el archivo <nombre_del_control>.Designer.vb para mostrar la pantalla de código.
Por defecto se mostrará el siguiente código, que ha generado Visual Studio de forma automática:


(Haz click para agrandar la imagen)

3) Cambiar el código por el código resaltado en la siguiente imagen:


(Haz click para agrandar la imagen)

Al hacer este cambio, veremos que el "icono" del explorador de soluciones de nuestro nuevo control ha cambiado:

4) Entrar en la pantalla de código del control:

Al entrar en la pantalla de código del nuevo control, veremos una clase totalmente en blanco.

5) Lo que haremos es "cambiar" los métodos OnPaint y OnPaintBackground para "dibujar" nuestro control con un aspecto "distinto".

El códio completo lo podéis ver AQUÍ.

Una vez que se han cambiado la clase compilaremos el programa. Al hacerlo debería aparecer un "nuevo" control en el "Cuadro de herramientas":

Si ahora arrastramos ese nuevo control a nuestro formulario:

Si además, añadimos el control "TAB Control" original, podremos apreciar la diferencia:

Y tal y como habiamos dicho, nos dá igual el sistema operativo donde se está ejecutando el programa. Aqui podéis ver el mismo control ejecutándose en Windows XP:

 

¿Complicado?. Creo que en absoluto.

En este caso hemos elegido un TAB Control, pero esta misma técnica se puede utilizar para cualquier control de Windows que uséis en vuestros proyectos (Labels, TextBox, ListBox, ComboBox, ListViews, ProgressBar, etc)

 

Espero vuestros comentarios.

 

Saludos.
mov eax,ollydbg; Int 13h  


Ollydbg ProSignature