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 :

[C#] [Winforms] [TabControl] couleur légende


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut [C#] [Winforms] [TabControl] couleur légende
    Bonjour à tous...

    Après une longue recherche sur google et dans la FAQ, j'en viens à croire qu'il n'existe pas de méthode pour modifier la couleur de fond du titre d'un onglet?

    Pour mon application, le contenu d'un onglet est modifié, alors qu'il n'est pas sélectionné, et pour en informer l'utilisateur, je voudrais surligner cet onglet en orange...

    je suis tout de même étonné qu'il soit impossible de modifier cette partie du tabcontrol sans passer par un librairie particulière (comme j'ai pu trouver sur le net)

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par maxdwarf Voir le message

    Après une longue recherche sur google et dans la FAQ, j'en viens à croire qu'il n'existe pas de méthode pour modifier la couleur de fond du titre d'un onglet?
    Tu peux overrider la méthode Paint de l'onglet, en sauvegardant préalablement le rectangle de paint (dans un objet Dictionnary par exemple)

    Un bout de code comme cela : (la variable innerTabControl référence le TabControl)

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
            private Dictionary<TabPage, Rectangle> _drawDictionnary = new Dictionary<TabPage, Rectangle>();
            void OnControlAdded(object sender, ControlEventArgs e)
            {
                Rectangle myTabRect;
                TabPage tab = e.Control as TabPage;
                if (tab != null)
                {
                    myTabRect = innerTabControl.GetTabRect(tab.TabIndex);
                    _drawDictionnary.Add(tab, myTabRect);
                    tab.Paint += new PaintEventHandler(tab_Paint);
                }
            }
     
            void tab_Paint(object sender, PaintEventArgs e)
            {
                Rectangle myTabRect;
                myTabRect = _drawDictionnary[(TabPage)sender];
                if (myTabRect != null)
                {
                    Graphics g = e.Graphics;
                    Pen p = new Pen(Brushes.Black);
                    g.DrawRectangle(p, myTabRect);
                }
            }
    Ici, ça ne fait rien, mais tu n'as plus qu'à faire ce que tu veux dans l'event handler tab_paint. (notamment en modifiant le Pen, etc ...)

Discussions similaires

  1. [Débutant] TabControl & couleur personnalisée
    Par Vincent32 dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/04/2012, 14h46
  2. WPF, XAML, TabControl Couleur différents
    Par sou_dj dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 02/06/2011, 12h35
  3. [WinForms]TabControl Onglet a Gauche
    Par LordBob dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 25/10/2006, 13h03
  4. Réponses: 4
    Dernier message: 26/07/2005, 10h45
  5. [VB.NET] Couleurs des onglets d'un TabControl
    Par ineznia dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/04/2004, 13h18

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