¿Cómo aplicar
un estilo visual sencillo en vb.net 2008?
Bueno, quizás
una preocupación existente entre muchos programadores sea el hecho de elaborar
un programa que permita cambiar la apariencia visual para hacerlo más atractivo
a la gente, en el entorno de programación Visual Basic.Net, en mi caso, versión
2008
Existen una
serie de controles ActiveX en internet que permiten hacer estas tareas, no
obstante, muchos de los programadores “amateurs” o “hobistas” como yo, les
puede parecer bastante tedioso descargarlos, ya que pueden tener sistemas
operativos no compatibles con tales controles (si, por aquello de que tengan
Windows XP o algo parecido)
Hoy les
enseñare una forma sencilla de hacerlo, sin descargar controles ni nada
parecido
Bueno, sin
mas preámbulo, comencemos
Paso 1:
Abrimos Vb.Net y creamos un nuevo proyecto en Archivo/Nuevo proyecto, o
simplemente la combinación de teclas ctrl+N y les aparecerá algo como esto:
En el
cuadro de dialogo elegimos “aplicación de Windows Form” y le damos aceptar
Paso 2: Una
vez creado el nuevo proyecto, nos vamos al “explorador de soluciones” y
buscamos el que diga “My Project”, le damos doble clic y nos abrirá el cuadro de
dialogo. En él, elegimos la pestaña “Configuración” y le ponemos los datos tal
y como aparecen en la imagen.
¿Qué es lo
que hicimos aquí? Bueno, resulta que esto en realidad es el archivo de configuración
de nuestro programa. Este nos permite guardar
información importante que podamos utilizar en el futuro, como por ejemplo, en
nuestro caso, darle una apariencia visual al programa.
Paso 3: Nos
vamos a la pestañita que dice “Form1” y al formulario le agregamos los
siguientes controles:
1. Un label llamado “Label1”
2. Dos Botones llamados Button1 y
Button2
3. Un ComboBox llamado Combobox1
Paso 4: Le
damos a cada uno de los controles las siguientes propiedades (para acceder a
ellas, solo haz clic derecho y luego haz clic en propiedades)
·
Al
control Label1, en la propiedad Text escribiremos Estilo:
·
Al
control Button1, en la propiedad Text le escribiremos Aplicar
·
Al
control Button2, en la propiedad Text escribiremos Salir
·
En
el Control ComboBox1, seleccionamos la propiedad ítems y al lado donde
dice (Colección) damos un clic en el botón … y nos aparecerá un cuadro de diálogo, en
donde debemos escribir estos valores tal y como vienen en la siguiente imagen
Y nos
quedará así
Paso 5: Crearemos una Clase “FormStyle”. Solo debemos ir a menú proyecto y
elegimos “agregar clase”.
En el
cuadro de dialogo elegimos la opción “Clase”, escribimos en el Nombre “FormStyle”
y Lugo clic en aceptar
Paso 6:
Escribimos el siguiente código –si lo desean, pueden copiarlo y luego pegarlo-
Private background As
System.Drawing.Color
Private foreground As
System.Drawing.Color
Private FontName As String
Private FontSize As Double
'enumerador de estilos: Nos permitira saber que estilo
queremos aplicar
Public Enum Style
Default_Style =
0
Fire = 1
Sea = 2
Tec = 3
End Enum
Sub LoadStyleForm(ByVal
form As Form)
Dim ctr As Control
'esto es lo que se ejecuta al abrir el programa
'lo que hace este comando es cargar lo que guardamos en el
archivo de configuración
'cuando aplicamos un estilo
Me.background = My.Settings.BACKGROUND
Me.foreground = My.Settings.FOREGROUND
Me.FontSize = My.Settings.FONTSIZE
Me.FontName = My.Settings.FONTNAME
My.Settings.Save()
form.BackColor
= Me.background
form.ForeColor
= Me.foreground
form.Font = New Font(Me.FontName,
Me.FontSize, FontStyle.Regular,
GraphicsUnit.Point)
'este bucle nos permite darle el formato de colores a los
controles
For Each ctr In form.Controls
If ctr.GetType() Is GetType(Button) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType Is
GetType(Label) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType() Is
GetType(RadioButton) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType() Is
GetType(CheckBox) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
Else
'si es de otro tipo distinto a label, button, checkbox o
frame, solo aplicara el estilo de fuente
'con el color predeterminado para el control-ejemplo, un
textbox
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
End If
Next
End Sub
Sub ApplyStyleToForm(ByVal
Form As Form, ByVal
style As Style)
Dim ctr As Control
'esto es lo que se ejecuta al dar click en el boton
'Aplicar'
'lo que hace este comando es guardar en el archivo de
configuración
'los parametros del estilo segun el quen hallamos elegido
If style = FormStyle.Style.Default_Style Then
StyleDefault() 'estilo predeterminado
ElseIf style = FormStyle.Style.Fire Then
StyleFire()
'estilo fuego
ElseIf style = FormStyle.Style.Sea Then
StyleSea() 'estilo océano
ElseIf style = FormStyle.Style.Tec Then
StyleTec() 'estilo tecnológico
End If
'almacena los datos en el archivo de configuración...
My.Settings.BACKGROUND = Me.background
My.Settings.FOREGROUND = Me.foreground
My.Settings.FONTSIZE = Me.FontSize
My.Settings.FONTNAME = Me.FontName
'y los guarda para
usarlos la proxima vez que lo abramos
My.Settings.Save()
Form.BackColor
= Me.background
Form.ForeColor
= Me.foreground
Form.Font = New Font(Me.FontName,
Me.FontSize, FontStyle.Regular,
GraphicsUnit.Point)
For Each ctr In Form.Controls
If ctr.GetType() Is GetType(Button) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType Is
GetType(Label) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType() Is
GetType(RadioButton) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
ElseIf ctr.GetType() Is
GetType(CheckBox) Then
ctr.BackColor = Me.background
ctr.ForeColor = Me.foreground
ctr.Font = New Font(Me.FontName, Me.FontSize,
FontStyle.Regular, GraphicsUnit.Point)
Else
'si es de otro tipo distinto a label, button, checkbox y
textbox, solo aplicara el estilo de fuente
'con el color predeterminado para el control
ctr.Font
= New Font(Me.FontName,
Me.FontSize, FontStyle.Regular,
GraphicsUnit.Point)
End If
Next
End Sub
'estilo predeterminado
Private Sub
StyleDefault()
background =
Color.FromKnownColor(KnownColor.Control)
foreground =
Color.Black
FontName = "Microsoft Sans Serif"
FontSize = 8.25
End Sub
'estilo fuego
Private Sub
StyleFire()
background =
Color.OrangeRed
foreground =
Color.Yellow
FontName = "Book Antiqua"
FontSize = 8.25
End Sub
'estilo océano
Private Sub
StyleSea()
background =
Color.MidnightBlue
foreground =
Color.White
FontName = "Tahoma"
FontSize = 8.25
End Sub
'estilo tecnologico
Private Sub
StyleTec()
background =
Color.Black
foreground =
Color.Lime
FontName = "BankGothic Md BT"
'es la misma fuente usada en el juego "Call of Duty
Modern Warfare. Pueden usar otra o descargarla
'en
http://www.911fonts.com/font/download_BankGothicMdBTMedium_1532.htm
FontSize = 8.25
End Sub
Paso 7: hacemos
clic a la pestaña del formulario y a continuación, en el “Explorador de
soluciones” hacemos clic en “Ver Código” y en el editor escribimos lo siguiente
Imports
WindowsApplication1.FormStyle
'Nota debo colocar en lugar de WindowsApplication1, el
nombre quese le dio y luego todo igual
Public Class
Form1
Private Sub
Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Button1.Click
Dim fs As New FormStyle
fs.ApplyStyleToForm(Me,
ComboBox1.SelectedIndex) 'selected index al ser
nuemrico, va de 0 a 3, que son los valores del enumerador
End Sub
Private Sub
Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim fs As New FormStyle
fs.LoadStyleForm(Me) 'me es el formulario actual
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Button2.Click
End 'cierra el programa
End Sub
End Class
Y ya lo
tenemos listo
ara
aplicar el estilo y guardarlo para la próxima vez que lo abramos, solo hace
falta hacer clic en el botón que dice “Aplicar”… repite el ejercicio varias
veces y veras que SI FUNCIONA
Esto es una
muestra de cada uno de los estilos
Bueno, esto
ha sido todo por hoy… espero que les haya sido de utilidad
Hasta
pronto.








No hay comentarios.:
Publicar un comentario