ProgramasVb6
  ChekBox
 

Descripción

El control CheckBox se utiliza generalmente para listar opciones y que el usuario pueda elegir entre ellas, y dependiendo del valor (si está chequeado o no), se realiza una u otra acción.

Una vista previa de este control:

Ejemplo y vista pervia de controles CkeckBox

 


Propiedad Caption

La propiedad del CheckBox que visualiza el texto en el control se llama Caption. Para establecerla se realiza desde la ventana de Propiedades de Visual Basic , o en tiempo de ejecución de esta manera:

Por ejemplo si quisiéremos hacerlo en el evento Load del Formulario , DobleClick sobre el form y en el procedimiento Form_Load:

  1. Private Sub Form_Load()  
  2.   
  3.     Check1.Caption = "Es usted mayor de edad"  
  4.     Check2.Caption = "¿ Tiene hijos ?"  
  5.     Check3.Caption = "¿ Estudió alguna carrera ?"  
  6.   
  7. End Sub  

 

 


Propiedad Value

La principal propiedad de este control es la propiedad Value. Esta propiedad devuelve y establece el valor seleccionado.

Esta tiene 3 posibles valores:

  • 0 - UnChecked
  • 1 - Checked
  • 2 - Grayed

 

Las mas utilizadas son la 0 - UnChecked y 1 - Checked. Cuando está en 0 , el checkbox no está tildado o checkeado, cuando está en 1 se muestra marcado.

Siguiendo con el ejemplo anterior de la encuesta, un ejemplo que no tiene ningún sentido pero que te de una idea mas clara de como usar este control.

Agrega en un formulario 3 controles CheckBox como muestra la imagen , un botón Command1 para mostrar el resultado y un control textBox llamado Text1 para ingresar un nombre.

 

viusta del ejemplo utilizand el control checkbox para un ejemplo de una  encuesta

 

Cuando lo presionemos, mostraremos un mensaje que muestre el resultado de la misma, evaluando mediante la propiedad Valuede cada Checkbox. Antes de evaluar los CheckBox comprobamos que se haya ingresado un texto en el Text1, si no se ingresó nada, se muestra un mensaje de advertencia y se termina la rutina mediante la instrucción Exit Sub , en cambio si se ingresó un nombre, visual basic prosigue la ejecución del resto del código:

 

Código fuente dentro del formulario:

  1. Option Explicit  
  2.   
  3. Private Sub Command1_Click()  
  4.       
  5.     ' -- Esta variable almacenará los datos para mostrar  
  6.     ' -- el resultado al final de la rutina  
  7.     Dim Resultado As String  
  8.   
  9.     ' -- Esto verificará si el text1 no está vacio y se ha ingresado un nombre  
  10.     If Text1 = "" Then  
  11.         ' -- si está vacío mostramos el mensaje  
  12.         MsgBox "Debe ingresar un nombre", vbExclamation, "Encuesta"  
  13.         ' -- Mediante Exit Sub salimos de la rutina para  
  14.         ' -- no ejecutar las líneas que debajo  
  15.         Exit Sub  
  16.     End If  
  17.   
  18.     ' -- Ahora guardamos en la Variable Resultado el nombre que  
  19.     ' -- se ingresó en el control text1  
  20.     Resultado = "Su nombre es " & Text1 & vbNewLine  
  21.   
  22.     ' -- Evaluamos el Check1 (mayor de edad)  
  23.     If Check1.Value = 0 Then  
  24.         Resultado = Resultado & "Usted no es mayor de edad"  
  25.     Else  
  26.         Resultado = Resultado & "Usted es mayor de edad"  
  27.     End If  
  28.   
  29.     ' -- Le agregamos a la variable resultado un salto de carro o salto de línea  
  30.     Resultado = Resultado & vbNewLine  
  31.   
  32.     ' -- Evaluamos el Check2 (Si tiene hijos )  
  33.     If Check2.Value = 0 Then  
  34.         Resultado = Resultado & "Usted no tiene Hijos"  
  35.     Else  
  36.         Resultado = Resultado & "Usted tiene hijos"  
  37.     End If  
  38.   
  39.     ' -- Otro salto de carro  
  40.     Resultado = Resultado & vbNewLine  
  41.   
  42.     ' -- Evaluamos el Check3 (si estudió)  
  43.     If Check3.Value = 0 Then  
  44.         Resultado = Resultado & "Usted no estudió una Carrera"  
  45.     Else  
  46.         Resultado = Resultado & "Usted estudió una Carrera"  
  47.     End If  
  48.   
  49.     ' -- Mostramos el valor de la variable Resultado con la información  
  50.     MsgBox Resultado, vbInformation, "Encuesta"  
  51.   
  52. End Sub  
  53.   
  54. Private Sub Form_Load()  
  55.       
  56.     ' -- Establecer Caption  de los controles  
  57.     Command1.Caption = "Mostrar resultados"  
  58.     Check1.Caption = "¿ Es usted mayor de edad ?"  
  59.     Check2.Caption = "¿ Tiene hijos ?"  
  60.     Check3.Caption = "¿ Estudió alguna carrera ?"  
  61.     Text1.Text = vbNullString  
  62. End Sub  
  63.       

 

Bueno esto obviamente se podría hacer de muchas otras maneras, pero está puesto así para que se entienda mejor.

 


Otras propiedades

Las demás propiedades ya se han visto y son comunes a los demás controles de Visual Basic, como son las propiedades de aspecto gráfico y apariencia del control: Propiedad Font, Forecolor, BackColor etc...., y otras como Visible, Enabled , Top, Left, Width, Height etc...

A continuación unos ejemplos simples que no tienen mucho sentido pero sirven para practicar

 

Cambiar la propiedad FontBold ( Estilo negrita ) de todos los CheckBox que haya en el formulario

Colocar varios controles Check y un botón

  1. Option Explicit  
  2.   
  3.   
  4. Private Sub Command1_Click()  
  5.       
  6.     Static bValue As Boolean  
  7.       
  8.     ' Variable de tipo control  
  9.       
  10.     Dim xCheckBox As Control  
  11.       
  12.     ' Recorrer en un bucle todos los controles del formulario actual  
  13.     For Each xCheckBox In Me.Controls  
  14.         ' Comprobar con el operador TypeOf si es un control CheckBox  
  15.         If TypeOf xCheckBox Is CheckBox Then  
  16.            ' Cambia la propiedad Bold  
  17.            xCheckBox.FontBold = Not bValue  
  18.         End If  
  19.     Next  
  20.       
  21.     If bValue = False Then  
  22.        Command1.Caption = "Negrita"  
  23.     Else  
  24.        Command1.Caption = "Normal"  
  25.     End If  
  26.       
  27.     bValue = Not bValue  
  28.       
  29. End Sub  
  30.   
  31. Private Sub Form_Load()  
  32.     Command1.Caption = "Normal"  
  33. End Sub  

 

 

Cambiar la propiedad Value de todos los CheckBox que haya en el formulario

Colocar varios controles CheckBox y un Command

  1. Option Explicit  
  2.   
  3.   
  4. Private Sub Command1_Click()  
  5.   
  6.     Static bValue As Boolean  
  7.       
  8.     bValue = Not bValue  
  9.       
  10.     Dim xCheckBox As Control  
  11.     ' Recorrer en un bucle todos los controles del form  
  12.     For Each xCheckBox In Me.Controls  
  13.         ' Comprobar con el operador TypeOf si es un control CheckBox  
  14.         If TypeOf xCheckBox Is CheckBox Then  
  15.            ' Cambiar la propiedad Value  
  16.            xCheckBox.Value = Abs(bValue)  
  17.         End If  
  18.     Next  
  19.       
  20.     Command1.Caption = "Value: " & CStr(bValue)  
  21.       
  22. End Sub  
  23.   
  24. Private Sub Form_Load()  
  25.     Command1.Caption = "Value: Falso"  
  26. End Sub  

 

 


Propiedad Style

Una propiedad de este control relacionado a su aspecto gráfico es la Propiedad Style:

Esta es similar a la del control CommandButton, y permite tener un checkBox de estilo gráfico o estilo Estándar normal, como muestra esta imagen:

Vista previa de las 2 opciones de la propiedad Style de los controles Ckeck

 

Si está en Graphical, es posible cambiarle el color de fondo y también si queremos podemos mostrar una imagen utilizando la propiedad Picture del Check

 

Eventos del Control CheckBox

El principal evento del control CheckBox es el evento Click. Si colocas un checkBox en un formulario y le das DobleClick, podés ver que VisualBasic abre la ventana de código y te crea un procedimiento de evento como este:

  1. Private Sub Check1_Click()  
  2.   
  3. End Sub  

 

Todas las instrucciones que estén en este bloque , se producirán cuando hagamos un click en dicho control:

Un ejemplo

Agrega 1 CheckBox. Luego pega el siguiente código, que lo que hace es que cada ves que se presione, muestre el valor de su propiedad Value. Para poder convertir el valor de Value, que puede ser un 1 o un 0 y a "Verdadero" o "Falso" utilizamos la función CBool que lo que hace es Convertir una expresión a un valor de tipo Boolean.

  1. Option Explicit  
  2.   
  3. Private Sub Check1_Click()  
  4.     ' -- Mostramos el valor de la propiedad Value del Check1  
  5.     MsgBox CBool(Check1.Value)  
  6. End Sub  

 

 

Descripción de los demás eventos

  • DragDrop: Ocurre cuando finaliza una operación de arrastrar y colocar.
  • DragOver: Ocurre cuando la operación de arrastrar y colocar está en curso.
  • GotFocus: Ocurre cuando el checkBox recibe el enfoque
  • LostFocus : Ocurre cuando el checkBox pierde el enfoque.
  • KeyDown: Ocurre al presionar una tecla mientras el checkBox tiene el enfoque.
  • KeyPress : Ocurre al presionar y liberar una tecla ANSI.
  • KeyUp : Ocurre cuando se libera una tecla mientras el checkBox tiene el enfoque.
  • MouseDown : Cuando el usuario presiona el botón del mouse mientras el checkBox tiene el enfoque.
  • MouseUp: Cuando se libera el botón del mouse mientras tiene el enfoque.
  • Validate : Ocurre cuando el control checkBox pierde el enfoque en favor de un control que produce una validación.

 

Ejemplos de eventos

Lo siguiente, utiliza el evento MouseMove del control, para que al pasar el mouse por encima, se visualice una descripción en un control de barra de estado. También, hace un simple efecto, cambiando el color del texto, similar al enlace de una página web.

Coloca en el formulario un control Check1, un control StatusBar, y el siguiente código fuente.

  1. Option Explicit  
  2.   
  3. ' -- Flag  
  4. Private bMouseEnter      As Boolean  
  5.   
  6. ' -- Cambiar color del texto al cambiar el value  
  7. ' ------------------------------------------------------  
  8. Private Sub Check1_Click()  
  9.     With Check1  
  10.         If .Value = 0 Then .ForeColor = vbBlack  
  11.         If .Value = 1 Then .ForeColor = vbRed  
  12.     End With  
  13. End Sub  
  14.   
  15. Private Sub Check1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)  
  16.     If bMouseEnter = False Then  
  17.         bMouseEnter = True  
  18.         ' -- Resaltar texto y mostrar la descripción en la barra de estado  
  19.         Call CambiarPropiedad(Check1, True)  
  20.         StatusBar1.Panels(1).Text = "Un texto descriptivo ...."  
  21.     End If  
  22. End Sub  
  23.   
  24. Private Sub Form_Load()  
  25.       
  26.     ' -- Propiedades de la barra de estado  
  27.     With StatusBar1  
  28.         .Style = sbrNormal                  ' -- Estilo  
  29.         .Panels(1).AutoSize = sbrSpring     ' -- ajustar al ancho  
  30.     End With  
  31.     ' -- Propiedades iniciales de la fuente  
  32.     With Check1  
  33.         .FontName = "Verdana"  
  34.         .FontSize = 12  
  35.         .FontBold = True  
  36.     End With  
  37. End Sub  
  38.   
  39. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)  
  40.     If bMouseEnter Then  
  41.        bMouseEnter = False  
  42.        ' -- Volver a colocar el texto normal  
  43.        Call CambiarPropiedad(Check1, False)  
  44.        StatusBar1.Panels(1).Text = ""  
  45.     End If  
  46. End Sub  
  47.   
  48. Private Sub CambiarPropiedad(CheckBox As CheckBox, bMouse As Boolean)  
  49.     With CheckBox  
  50.         If bMouse Then  
  51.             ' subrayar el texto y colocarlo en azul  
  52.            .ForeColor = vbBlue  
  53.            .FontUnderline = True  
  54.         Else  
  55.             ' texto normal  
  56.             If .Value = 0 Then .ForeColor = vbBlack  
  57.             If .Value = 1 Then .ForeColor = vbRed  
  58.            .FontUnderline = False  
  59.         End If  
  60.     End With  
  61. End Sub  

 

 

 


Ejemplo para crear un CheckBox propio mediante controles Image

Este ejemplo para descargar es muy simple y muestra como se puede crear un control Check utilizando gráficos personalizados, es decir creado por nosotros, como muestra la imagen:

vista del ejemplo para crear un checkbox con controles de imagen y gráficos propios

 

El ejemplo está hecho con dos controles image, uno llamado ImageCheck, que tiene cargado el gráfico para mostrar el valor checkeado, el otro control Image llamado ImageUncheck, tiene el otro gráfico sin el check. Luego al presionar los controles Image, en el evento click, si el ImageUncheck está visible, se oculta, si está invisible se visualiza, y los mismo con el otro image.

Descargar ejemplo

 
 
  ProgramasVb Copyright. 2011-2012 All Right Reserved  
 
=> ¿Desea una página web gratis? Pues, haz clic aquí! <=