IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Changer couleur onglet TabPage


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 105
    Points
    105
    Par défaut Changer couleur onglet TabPage
    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 :

    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();
            }
    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
    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 ?
    un tiens vaut pas mieux que zéro tu l'auras pas

  2. #2
    Membre régulier Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 105
    Points
    105
    Par défaut
    Bon, avec un refresh() ca a l'air de fonctionner...
    un tiens vaut pas mieux que zéro tu l'auras pas

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Redessines-tu tous les onglets dans l'évenement SelectedIndexChanged ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Membre régulier Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 105
    Points
    105
    Par défaut
    Non, ca aurait effectivement pu êter une cause...
    En réalité j'ai implémenté une fonction de recherche qui met en évidence les onglets qui contiennent les infos cherchées. J'applique le changement de couleur (monTabPage.BackColor = Color. ..) à tous ceux que je veux, et je fais un monTabControl.Refresh() à la fin.
    un tiens vaut pas mieux que zéro tu l'auras pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. [XL-2003] Comment changer couleur onglet
    Par magnetolivier dans le forum Excel
    Réponses: 18
    Dernier message: 15/11/2012, 11h15
  3. Changer couleur des onglets
    Par labolabs dans le forum Forms
    Réponses: 1
    Dernier message: 16/12/2009, 11h09
  4. VB.NET Couleur d'un onglet TabPage depuis une classe hérité
    Par vincnet68 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/05/2007, 13h42
  5. changer couleur d'une "case" selon clique
    Par Jéjé2reims dans le forum MFC
    Réponses: 4
    Dernier message: 05/02/2004, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo