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

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

6 réponses

Meilleure réponse
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 192 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sebmafate
Messages postés
37
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
20 août 2009
0
Merci
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.
Commenter la réponse de kerma26
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
5
0
Merci
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.
Commenter la réponse de WishhhMaster
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010
0
Merci
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...
Commenter la réponse de Miltiades
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
5
0
Merci
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.
Commenter la réponse de WishhhMaster
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
5
0
Merci
Merci beaucoup :)
Commenter la réponse de WishhhMaster