Obtenir la couleur de fond d'un TabControl

Résolu
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 - 9 août 2009 à 09:45
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 - 14 août 2009 à 10:53
Salut,

Comment puis-je obtenir la couleur d'un TabControl?

La propriété BackColor renvoie toujours SystemColors.Control, mais ce n'est pas la vrai couleur si l'application utilise les styles visuels.

J'imagine qu'il faut que je passe par du natif, mais je n'arrive pas à trouver quel message envoyer pour un TabControl.


Merci

6 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 août 2009 à 08:54
L'idéal est d'utiliser la classe TabRenderer pour "peindre" l'arrière plan de ton label.


Sébastien FERRAND
Consultant Sénior
Microsoft Visual C# MVP
3
kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009
9 août 2009 à 22:02
Salut,

Pour le TabControl en lui-même je ne crois pas qu'on puisse changer sa couleur, parcontre pour ses onglets (TabPage)
tu peux de souvenir c'est :
//Pour changer la couleur
tabPage.BackColor = Color.Black;
//Pour obtenir la couleur
string couleur = tabPage.BackColor.Name;
//ou 
Color color = tabPage.BackColor;


Je suis presque sur que c'est ça, tu me diras si ma mémoire est bonne ;) bye.
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
10 août 2009 à 09:39
Salut,

Merci pour ta réponse mais je veux obtenir la couleur de fond du TabControl.
Je ne veux même pas la changer, juste savoir sa valeur.

La raison est que si le tab control ne contient aucune TabPage, je veux afficher un label par-dessus. Comme on ne peux ajouter que des TabPages à un TabControl, j'ajoute le label au control qui contient le TabControl, et amène le label au premier plan. Problème: si je mets la couleur de fond du label à transparent, il s'affichera avec la couleur de fond du control conteneur, pas du tab control.
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
11 août 2009 à 10:48
SystemColors.Control est une couleur,
c'est la couleur définie par le système d'exploitation pour les controls et
c'est aussi une structure de type system.drawing.color qui possède toutes les informations dont tu peux avoir besoin (comme par exemple les composantes ARGB de cette couleur...)

avec ca tu devrais pouvoir te débrouiller...

Nul ne devient grand par la guerre...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
11 août 2009 à 12:34
Je sais que c'est une couleur, sauf qu'elle ne correspond pas à la couleur qui est en réalité affichée si l'application utilise les styles visuels.

Ce que je veux faire n'est sans doute pas possible, car après avoir regardé de plus près, la couleur de fond d'un TabControl avec thème XP est en fait un gradient.
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
14 août 2009 à 10:53
Merci beaucoup :)
0
Rejoignez-nous