Obtenir la couleur de fond d'un TabControl [Résolu]

Signaler
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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
Messages postés
36
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
20 août 2009

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.
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
6
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.
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

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...
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
6
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.
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
6
Merci beaucoup :)