Hello
J'ai un TabControl contenant des TabPage. Je cherche à colorer les onglets de mes TabPage.
A priori, il n'existe pas de propriété ou de fonction native pour faire ca.j'utilise cette fonction :
Ca fonctionne, mais pas vraiment : en clair, je change la couleur durant l'execution de l'application (par exemple sur clic d'un bouton en runtime). Les onlgets ne se colorent pas tout de suite. Il faut que je clic sur un autre onglet pour que le précédent change sa couleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public void putColor(object sender, System.Windows.Forms.DrawItemEventArgs e) { System.Windows.Forms.TabControl tabControl = (System.Windows.Forms.TabControl)sender; Brush brushBack; Brush brushFore; brushBack = new System.Drawing.SolidBrush(tabControl.TabPages[e.Index].BackColor); brushFore = new SolidBrush(tabControl.TabPages[e.Index].ForeColor); e.Graphics.FillRectangle(brushBack, e.Bounds.X + 2, e.Bounds.Y, e.Bounds.Width - 2, e.Bounds.Height); e.Graphics.DrawString(tabControl.TabPages[e.Index].Text, tabControl.TabPages[e.Index].Font, brushFore, (float)(e.Bounds.X + 3), (float)(e.Bounds.Y + 3)); brushBack.Dispose(); brushFore.Dispose(); }
En résumé, je dois cliquer sur tous les onglets pour qu'ils aient tous la couleur désirée...
J'ai beau avoir appliqué un performLayout() à chacun, ca ne change rien...
Est ce que quelqu'un à une idée pour arranger ca svp ?
Partager