Comportamiento del color para los usuarios de Visual Basic 6.0

Actualización: noviembre 2007

Las propiedades ForeColor y BackColor de los controles tienen un comportamiento distinto en Visual Basic 6.0 y en Visual Basic 2008.

Diferencias conceptuales

En Visual Basic 6.0 las propiedades BackColor y ForeColor de un control debían establecerse explícitamente en tiempo de diseño o en tiempo de ejecución, y los colores no podían heredarse. En Visual Basic 2008, a menos que un color se defina explícitamente en tiempo de diseño o en tiempo de ejecución, éste hereda la configuración de color de su elemento primario.

Cambios de código para el comportamiento de color

En el ejemplo siguiente en el que aparece un formulario con dos controles CommandButton, Command1 y Command2, se muestran las diferencias de comportamiento:

' Visual Basic 6.0

' Command1's BackColor is left at its default (gray).

' Command2's BackColor is explicitly set.

Command2.BackColor = vbBlack

' Explicitly set the BackColor of the form.

Form1.BackColor = vbRed

Después de ejecutar el código anterior, el valor BackColor de Command1 sigue siendo el predeterminado (gris) y el valor BackColor de Command2 es el negro.

En el siguiente ejemplo se muestra el comportamiento en Visual Basic 2008. En Visual Basic 2008, los controles CommandButton se reemplazan por controles Button.

' Visual Basic
' Command1's BackColor is left at its default (gray).
' Command2's BackColor is explicitly set.
Command2.BackColor = System.Drawing.Color.Black
' Explicitly set the BackColor of the form.
Me.BackColor = System.Drawing.Color.Red

Después de ejecutar el código anterior, el valor de BackColorCommand1 es rojo y el valor BackColor de Command2 es negro. Como la propiedad BackColor de Command1 no se definió explícitamente, se hereda el rojo del formulario.

Nota:

Esto se aplica a cualquier elemento principal, no sólo a los formularios. Si el control Button estuviera incluido en un control Panel dentro del formulario, al cambiar el color del panel o del formulario cambiaría el color de Button.

Notas de actualización

Cuando una aplicación de Visual Basic 6.0 se actualiza a Visual Basic 2008, el Asistente para actualización no tiene modo alguno de determinar si se heredarán colores. Después de la actualización, busque código que establezca explícitamente la propiedad BackColor o ForeColor en tiempo de ejecución. Si se ha establecido para un control primario, establezca explícitamente el color de los controles secundarios en tiempo de diseño.

Vea también

Referencia

Control del color para usuarios de Visual Basic 6.0

Otros recursos

Controles de formularios Windows Forms para usuarios de Visual Basic 6.0