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

VB.NET Discussion :

Style d'onglet tabpage ?


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut Style d'onglet tabpage ?
    Bonjour,

    Ma question est juste une question de présentation.

    Enfaite, j'ai un tabcontrol contenant des tabpages. Et j'aimerais enlever le bouton 'Fermer' et mettre a la place une petite croix sur les onglets comme sur les onglets d'un navigateur.

    Ou alors autre présentation genre Visual studio 2005 par exemple ou access 2010, avec la croix à droite qui ferme l'onglet.

    Est ce possible ?

    Merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tout est possible

    en windows forms c'est moins marrant mais ca reste faisable
    je pense qu'il faut chercher si on peut draw soit même les headers, auquel cas tu auras un event de levé et tu pourras drawstring et drawimage
    après faut faire un hittest sur la croix pour fermer

    (désolé )

    sinon réécrire un tabcontrol vite fait sur un usercontrol (voir s'il n'y en a pas déjà sur codeplex ou un autre site opensource)

    en wpf c'est plus simple
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Je confirme que l'on peut "redessiner" les entêtes d'un tabPage, l'ayant fait afin de changer la couleur de cet entête

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
      Private Sub TabControl1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
            Dim g As Graphics = e.Graphics
            Dim tp As TabPage = TabControl1.TabPages(e.Index)
            Dim br As Brush
            Dim sf As New StringFormat
            Dim r As New RectangleF(e.Bounds.X, e.Bounds.Y + 2, e.Bounds.Width, e.Bounds.Height - 2)
            Dim strTitle As String = tp.Text
     
            Try
                If Not tp.Controls(0) Is Nothing Then
                    If CType(tp.Controls(0), tabPageColis).isValided And CType(tp.Controls(0), tabPageColis).isPrinted Then
                        br = New SolidBrush(Color.Green)
                        g.FillRectangle(br, e.Bounds)
                        br = New SolidBrush(tp.ForeColor)
     
                        g.DrawString(strTitle, TabControl1.Font, br, r, sf)
                        tp.Tag = True
                    ElseIf CType(tp.Controls(0), tabPageColis).isValided Then
                        br = New SolidBrush(Color.Yellow)
                        g.FillRectangle(br, e.Bounds)
                        br = New SolidBrush(tp.ForeColor)
     
                        g.DrawString(strTitle, TabControl1.Font, br, r, sf)
                        tp.Tag = True
                    Else
                        br = New SolidBrush(Color.White)
                        g.FillRectangle(br, e.Bounds)
                        br = New SolidBrush(tp.ForeColor)
     
                        g.DrawString(strTitle, TabControl1.Font, br, r, sf)
                        tp.Tag = False
                    End If
                End If
            Catch ex As Exception
            End Try
     
        End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Merci pour votre aide.

    J'aurais juste une question :

    sur la réponse de Meiteisho, par exemple, sur la ligne :

    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    If CType(tp.Controls(0), tabPageColis).isValided And CType(tp.Controls(0), tabPageColis).isPrinted Then

    le tabPageColis qu'est ce que c'est ? parce que moi si je met le nom d'une de mes tabpages et j'ai une erreur :
    Type 'MonTabpage' non défini.
    Que faut il faire mettre à la place des tabpagecolis ?

    Merci d'avance

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Bonjour,

    Alors dans mon exemple "TabPageColis" est un Control que j'ai crée.

    Mais n'essayez pas de copier/coller cet exemple qui ne correspond pas exactement a ce que vous voulez faire, mais est la uniquement pour vous aiguiller.

    Chez vous a la place de dessiner un rectangle et une chaine de caractère comme je le fais, vous devez plutot vous penchez sur comment dessiner deux droite qui se croisent (pour la croix de fermeture) ou un caractère "x" éventuellement

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    oui oui je sais bien mais j'ai fais un copier coller pour voir ce que le code donnait, et le comprendre pour après faire ce dont j'ai besoin.

    En tout cas merci

Discussions similaires

  1. [CSS 3] Style menu, onglets
    Par LaVieEst... dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 23/04/2014, 21h52
  2. Appliquer du style aux onglets dans un rapport BIRT
    Par nabil.brarou dans le forum BIRT
    Réponses: 4
    Dernier message: 08/08/2012, 15h19
  3. [Débutant] création d'onglet (tabpage) depuis un autre formulaire.
    Par impacto dans le forum C#
    Réponses: 2
    Dernier message: 04/09/2011, 16h59
  4. Changer couleur onglet TabPage
    Par maVariable dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/05/2009, 19h49
  5. 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

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