Cómo: Emular un control Tri-State de Visual Basic 6.0 en una aplicación actualizada

Actualización: noviembre 2007

En Visual Basic 6.0, las propiedades Picture, DownPicture y DisabledPicture se utilizan para mostrar imágenes diferentes en función del estado de un control CheckBox, CommandButton u OptionButton. Por ejemplo, cuando se activa un control CheckBox, se muestra la imagen DownPicture; si el control está desactivado, se muestra la imagen DisabledPicture.

En Visual Basic 2008, puede conseguir el mismo efecto mediante un control ImageList, tal como se muestra en el ejemplo siguiente.

Nota:

En primer lugar, compruebe la aplicación de Visual Basic 6.0. Si las propiedades DownPicture y DisabledPicture no se establecen en tiempo de diseño ni en tiempo de ejecución, el comportamiento debería ser el mismo que en Visual Basic 2008.

Nota:

Los cuadros de diálogo y los comandos de menú que se ven pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Para cambiar la configuración, seleccione Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Agregar un control ImageList

Siga los pasos siguientes para modificar la aplicación actualizada si se definen las propiedades DownPicture o DisabledPicture.

Para emular un control de tres estados

  1. Determine los nombres de archivo y las ubicaciones de las imágenes que se asignaron a las propiedades Picture, DownPicture y DisabledPicture, y, si es necesario, cópielas en el equipo de desarrollo.

  2. En el Cuadro de herramientas, agregue un control ImageList al formulario.

  3. En la ventana Propiedades, seleccione la propiedad Images.

  4. En el Editor de la colección de imágenes, agregue tres imágenes para utilizarlas en Picture, en DownPicture y en DisabledPicture.

  5. Si se establecían propiedades en tiempo de ejecución, quite el código. Si las propiedades se establecían en tiempo de diseño, agregue el código siguiente al evento Load del formulario:

    ' Assign the first image (Picture) to the Image property.
    CheckBox1.Image = ImageList1.Images(0)
    
  6. Para mostrar la imagen DownPicture en tiempo de ejecución, agregue el código siguiente al evento CheckedChanged del control CheckBox.

    If CheckBox1.Checked = True Then
      ' Assign the second image (DownPicture) to the Image property.
      CheckBox1.Image = ImageList1.Images(1)
    Else
      ' Assign the first image (Picture) to the Image property.
      CheckBox1.Image = ImageList1.Images(0)
    End If
    
  7. Para mostrar la imagen DisabledPicture en tiempo de ejecución, agregue el código siguiente al evento EnabledChanged del control CheckBox.

    If CheckBox1.Enabled = False Then
      ' Assign the third image (DisabledPicture) to the Image property.
      CheckBox1.Image = ImageList1.Images(2)
    ElseIf CheckBox1.Checked = True Then
      ' Assign the second image (DownPicture) to the Image property
      CheckBox1.Image = ImageList1.Images(1)
    Else
      ' Assign the first image (Picture)to the Image property
      CheckBox1.Image = ImageList1.Images(0)
    End If
    

    La aplicación deberá tener ahora el mismo comportamiento que el que tenía en Visual Basic 6.0.

Vea también

Conceptos

Propiedad Style para usuarios de Visual Basic 6.0

Control CheckBox para usuarios de Visual Basic 6.0

Control CommandButton para usuarios de Visual Basic 6.0

Control OptionButton para usuarios de Visual Basic 6.0

Control OptionButton para usuarios de Visual Basic 6.0

Controles de usuario para usuarios de Visual Basic 6.0