Personaliser les entêtes des onglets

Le
sam-developping
Bonjour,

J'ai une collection des onglets. Je voudrais personnaliser les entêtes des onglets de tel sorte que chaque onglet soit d'une couleur différente!

Une idée? Merci d'avance.
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jérémy Jeanson
Le #18765841
Bonjour Sam,

Ce que tu veux faire est tout à fait possible, il suffit de modifier le
rendu du TabControl via GDI+. Rien de très compliqué en soit.

Si tu veux un exemple j'ai déjà fait ce genre de chose et posté le code
sur Codes-Sources à l'adresse suivante.
http://www.csharpfr.com/codes/LIBRAIRIE-TRES-COMPLETTE-CONTROLS-WINFORMS-PERSONNALISES_48447.aspx

Tu y trouveras un contrôle héritant de TabControl et dont les onglets on
une forme et une couleur différente. Le code étant relativement commenté
cela devrait te fournir une bonne base pour ce que tu veux exactement.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Hachmi Sami
Le #18782581
bonjour,

En 2 étapes:

1) Intialiser la propriétée tabControl1.DrawMode TabDrawMode.OwnerDrawFixed;
ce qui permet d'utiliser l'évennement DrawItem

2) Utiliser l'évennement DrawItem pour modifier la couleur de l'onglet.

tabControl1.DrawItem += new
DrawItemEventHandler(tabControl1_DrawItem);

void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index==0)
{
e.Graphics.FillRectangle(new
SolidBrush(Color.Green),tabControl1.GetTabRect(e.Index));
e.Graphics.DrawRectangle(new Pen(Color.Blue, 1),
tabControl1.GetTabRect(e.Index));
}
else
{
e.Graphics.FillRectangle(new SolidBrush(Color.Blue ),
tabControl1.GetTabRect(e.Index));
e.Graphics.DrawRectangle(new Pen(Color.Green , 1),
tabControl1.GetTabRect(e.Index));
}
}

A+

Sami

"sam-developping" news:
Bonjour,

J'ai une collection des onglets. Je voudrais personnaliser les entêtes des
onglets de tel sorte que chaque onglet soit d'une couleur différente!

Une idée? Merci d'avance.


Publicité
Poster une réponse
Anonyme