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 :

[VB.NET] Couleurs des onglets d'un TabControl [FAQ]


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VB.NET] Couleurs des onglets d'un TabControl
    Bonjour,

    Je dois faire le maquettage d'une partie d'une appli, et VS.NET avec VB.NEt a été retenu pour ce faire.
    On m'a filé des montages d'écran pour voir à quoi devait ressembler mes maquettes, et la il y a sur la partie principale une navigation par onglets, et ces onglets sont en couleurs.
    Deja, est-ce possible de coloriser les onglets d'un controlTab ?
    Si oui, comment ? :p

    J'ai cherché dans les propriétés sans résultats.

    Je vous remercie.
    On m'aime ou on me hait. Mais on reste rarement indifférent face à moi, encore faut-il me voir ...

  2. #2
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 165
    Points : 193
    Points
    193
    Par défaut
    ça m'interesse aussi cette question,

    j'ai cherché aussi et rien trouvé,

    à priori la couleur des onglets se base sur la couleur systeme de l'interface Windows standard ( ce sont les couleurs par défaut que l'on peut regler dans l'icone affichage du panneau de configuration )

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai juste trouvé comment modifier et choisir la couleur du texte contenu dans l'onglet ...

    Voici le lien si ça vous interesse : http://devcity.net/forums/topic.asp?tid=61232 (en anglais).

    Mais toujours pas de solution pour coloriser le background des onglets ?

    On m'aime ou on me hait. Mais on reste rarement indifférent face à moi, encore faut-il me voir ...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon bein voila, j'ai trouvé le code suivant :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
            If e.State = DrawItemState.Selected Then
                e.Graphics.FillRectangle(Brushes.Azure, e.Bounds)
                e.Graphics.DrawString(TabControl1.TabPages(e.Index).Text, Me.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y)
     
            Else
                e.Graphics.FillRectangle(Brushes.LightGoldenrodYellow, e.Bounds)
                e.Graphics.DrawString(TabControl1.TabPages(e.Index).Text, Me.Font, Brushes.Black, e.Bounds.X, e.Bounds.Y)
     
            End If
        End Sub
    Il faut apparement fixer la propiétés Drawmode du tabControl à OwnerDrawFixed.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
    Finallement ça dessine juste un rectangle de couleur au bon endroit.
    Mais dans l'exemple suivant, tous les onglets sont de la meme couleurs sauf l'ongelt selectionné.
    Me reste plus qu'a essayer d'arranger ça pour que chaque onglet ai sa couleur propre ...[/code]
    On m'aime ou on me hait. Mais on reste rarement indifférent face à moi, encore faut-il me voir ...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon est bien voila, j'ai réussi a faire ce que je voulais faire.
    Un peu lourd quand meme je trouve, le code pourrai certainement etre amélioré, mais je fais qu'une maquette ! Donc je serai barbare jusqu'au bout

    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 Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
     
            Dim f As Font = New Font(e.Font, FontStyle.Bolds)
            Dim b As New SolidBrush(Color.Black)
     
            'CLIENTS
            If e.Index = 0 Then
     
                'On choisi la couleur ici
                e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds)
     
                'Ici vient se placer aussi des modifications de la font du texte de l'onglet (type, taille couleur au travers d'un objet de type Font) et positionnement (le X et le Y)
                e.Graphics.DrawString(TabControl1.TabPages(e.Index).Text, Me.Font, Brushes.Black, e.Bounds.X + 1, e.Bounds.Y + 3)
     
            End If
     
            'COMPLEMENT
            If e.Index = 1 Then
                e.Graphics.FillRectangle(Brushes.LightSalmon, e.Bounds)
                e.Graphics.DrawString(TabControl1.TabPages(e.Index).Text, Me.Font, Brushes.Black, e.Bounds.X + 1, e.Bounds.Y + 3)
            End If
     
            'Ici exemple de 2 onglets, mais on peut en mettre plus ....
     
        End Sub
    On m'aime ou on me hait. Mais on reste rarement indifférent face à moi, encore faut-il me voir ...

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut

    Merci
    je suis en stage et je doit aussi effectuer une maquette d'appli et vous venez de me sortir une épine du pied

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je pense que j'ai oublié de mettre le tag "resolu" sur ce post...
    Et suis bin contente d'avoir pu aider qqun en m'aidant moi meme !
    On m'aime ou on me hait. Mais on reste rarement indifférent face à moi, encore faut-il me voir ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2006, 12h18
  2. [VBA-E]changer la couleur des onglets
    Par xavier_claustres dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2006, 14h45
  3. [VB.Net] Faire des onglets avec Webmatrix
    Par ellyne dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/01/2006, 12h03
  4. Changer la couleur des onglets de pagecontrol
    Par Death83 dans le forum C++Builder
    Réponses: 13
    Dernier message: 09/10/2005, 12h11
  5. [VB.NET] Cache l'onglet d'un TabControl
    Par Lois dans le forum Windows Forms
    Réponses: 14
    Dernier message: 27/10/2004, 09h55

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