Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Personaliser les entêtes des onglets

2 réponses
Avatar
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.

2 réponses

Avatar
Jérémy Jeanson
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
Avatar
Hachmi Sami
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" a écrit dans le message de
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.