Comportement des couleurs pour les utilisateurs de Visual Basic 6.0
Mise à jour : novembre 2007
Les propriétés ForeColor et BackColor de contrôles se comportent différemment dans Visual Basic 6.0 et dans Visual Basic 2008.
Différences conceptuelles
Dans Visual Basic 6.0, les propriétés BackColor et ForeColor d'un contrôle devaient être explicitement définies au moment du design ou au moment de l'exécution, car les couleurs ne pouvaient pas être héritées. Dans Visual Basic 2008, si une couleur n'est pas explicitement définie au moment du design ou au moment de l'exécution, elle hérite des paramètres de couleur de son parent.
Modifications du code pour le comportement des couleurs
Ces différences de comportement sont illustrées dans l'exemple suivant qui s'appuie sur un formulaire contenant deux contrôles CommandButton , Command1 et Command2.
' 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
Après exécution du code ci-dessus, BackColor de Command1 reste le gris (valeur par défaut) et BackColor de Command2 reste le noir.
L'exemple suivant illustre le comportement dans Visual Basic 2008. Dans Visual Basic 2008, les contrôles CommandButton sont remplacés par les contrôles 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
Après avoir exécuté le code ci-dessus, BackColor de Command1 est rouge et BackColor de Command2 est noir. Parce que le BackColor de Command1 n'a pas été défini explicitement, le rouge est hérité du formulaire.
Remarque : |
---|
Cela s'applique pour tout parent, pas seulement pour les formulaires. Si le contrôle Button était contenu dans un contrôle Panel du formulaire, le changement de la couleur du volet ou du formulaire modifierait la couleur de Button. |
Mettre à niveau des remarques
Lorsqu'une application Visual Basic 6.0 est mise à niveau vers Visual Basic 2008, l'Assistant Mise à niveau n'a aucun moyen de déterminer si les couleurs vont être héritées. Après la mise à niveau, recherchez tout code qui définit explicitement la propriété BackColor ou ForeColor au moment de l'exécution. Si cette propriété est définie pour un parent, définissez explicitement la couleur des contrôles enfants au moment du design.
Voir aussi
Référence
Gestion des couleurs pour les utilisateurs de Visual Basic 6.0
Autres ressources
Contrôles Windows Forms pour les utilisateurs de Visual Basic 6.0