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 :

Ajout dynamique de label sur un form


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de katoyi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 75
    Points
    75
    Par défaut Ajout dynamique de label sur un form
    J'ai un form surlequel je veux ajouter dynamiquement des labels (a la queue leu leu). Ces labels contiennent des textes différents donc une longueur différente. Mon problème c'est que je ne sais pas exactement la taille de ces labels pour pouvoir positionner l'un après l'autre mes labels.
    Voici un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Function addParameters(ByVal params As Collection, ByVal emphasize As Integer) As Integer
    For i As Integer = deb To fin
                Dim label As New Label()
                Dim txt As String = CType(params(i), String)
     
                label.Text = txt
                label.AutoSize = True
               ' label.Location = New Point(???, 0)
                parametre.Controls.Add(label)
            Next
    end function
    parametre c'est mon form

    Quelqu'un a t il une idée.

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    La propriété MeasureString de la classe Graphics devrait faire l'affaire.
    Du coup, il vaut mieux mettre ton autosize à false et regler la taille et la position de ton label dans la boucle.

    un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonRectangle (ou MaSize, je sais plus) = MonLabel.CreateGraphics.MeasureString(texte et font en parametre)

  3. #3
    Membre régulier Avatar de katoyi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 75
    Points
    75
    Par défaut
    Merci
    Ca me donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Function addParameters(ByVal params As Collection, ByVal emphasize As Integer) As Integer
    Dim position as Integer=0
     For i As Integer = deb To fin
                Dim label As New Label()
                Dim txt As String = 
                label.Text = txt
                label.AutoSize = True
                Dim size As SizeF = label.CreateGraphics.MeasureString(txt, label.Font)
                label.Location = New Point(position, 0)
                position += CType(size.Width, Integer) 'Pour positionner après le label précédent
                Variables.parametre.Controls.Add(label)
            Next
    End Function
    Mais il faut garder le AutoSize à True sinon il m'agrandit la fenêtre.

    Merci pour l'aide.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    Si ca marche avec autoSize a true ca doit vouloir dire que AutoSize utilise MeasureString dans ses calculs ...
    L'important c'est que ca marche !

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

Discussions similaires

  1. Ajout d'une fonctionnalité sur un form dynamique
    Par bisvan dans le forum jQuery
    Réponses: 1
    Dernier message: 14/12/2009, 22h22
  2. ajouter l icone reduire sur le forms
    Par tomy7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2008, 16h10
  3. Ajout dynamique de textbox sur un step Wizard
    Par thierry007 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 31/10/2007, 17h44
  4. ajout d'un pagecontrol sur une form existante
    Par Mihalis dans le forum Delphi
    Réponses: 5
    Dernier message: 06/06/2007, 09h43
  5. Réponses: 7
    Dernier message: 01/03/2006, 18h14

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