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

VBA Discussion :

Labels créés par code qui ne montrent qu'une petite partie de leur texte (et même rien du tout)


Sujet :

VBA

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 51
    Par défaut Labels créés par code qui ne montrent qu'une petite partie de leur texte (et même rien du tout)
    Bonjour à tous
    Je crée par code une série de labels qui sont des noms de vidéos qu'on pourra visionner en cliquant dessus. Pour le moment, je butte sur le problème suivant :
    Les textes des labels sont représentés par les lignes successives d'un fichier texte.
    Les labels sont bien créés, mais seulement une petite partie du nom des vidéos apparait sur le formulaire. J'ai pourtant mis l'autosize du label à "false" et j'élimine les sauts de ligne éventuels sur le critère "length" de la ligne.
    Je ne comprend pas pourquoi seulement le début du nom apparait sur mon formulaire.
    Quelqu'un peut-il m'aider ?

    Voici mon code :

    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
    Private Sub CliquerPourVoirLaListeDesChapitresToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CliquerPourVoirLaListeDesChapitresToolStripMenuItem.Click
            Me.BackColor = Color.Pink
            Me.BackgroundImage = Nothing
            Titre.Visible = True
            'My.Computer.FileSystem.OpenTextFileReader("D:\DVD\ListeDesChapitres.txt")
            Dim Lecteur As New StreamReader("D:\DVD\ListeDesChapitres.txt")
            Dim Longueur As Integer
            Dim Ligne As String
     
            Do
                Ligne = Lecteur.ReadLine
                If Lecteur.ReadLine = Nothing Then Exit Do
                Longueur = Ligne.Length
                Dim Etiq As New Label
                Etiq.AutoSize = False
                If Longueur <> 0 Then
                    Etiq.Name = "Chapitre" & i.ToString
                    Etiq.Font = Font
                    Etiq.Text = Ligne
                    'MsgBox("# " & Ligne & " #")
                    Etiq.Width = Longueur
                    Etiq.Top = 50 + 20 * i
                    Etiq.Left = 100
                    Controls.Add(Etiq)
                    i += 1
                End If
            Loop 'Until Lecteur.ReadLine = Nothing
            Lecteur.Close()
     
        End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Salut,

    la largeur d'un contrôle n'est pas exprimé dans la même unité que le nombre de caractères d'un fichier ou d'une chaîne de caractères. Cela explique tes dimensions ne correspondent pas à ce que tu t'attends.

    Ton code n'est pas contre pas du VBA mais du VB.Net, aussi je me questionne sur le bon emplacement de ta demande.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2014
    Messages : 51
    Par défaut
    En ce qui concerne VBA au lieu de VB.net je suis entièrement d'accord. Mais ce n'est pas moi qui l'ai déplacé. C'est Escartefique. Je ne savais pas comment lui signaler son erreur puisqu'il était précisé sur le mail de NE PAS REPONDRE ...
    Pour ce qui concerne mon problème, je comprend qu'il s'agit d'unités, mais je ne sais toujours pas comment résoudre le pb.
    Je ne sais pas non plus s'il faut écrire un intitulé dans le présent message, ou non... J'essaye sans.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Ok,

    mon petit doigt me dit qu'en utilisant simplement la propriété (Label.)AutoSize tu trouveras ton bonheur...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [Débutant] Écrire dans des labels créés par code ?
    Par pieche dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/01/2012, 23h59
  2. Réponses: 1
    Dernier message: 13/08/2007, 23h59
  3. Code qui permet d'ouvrir une fenetre browser comme pour un input file
    Par Jim_Nastiq dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/06/2007, 16h11
  4. [C#]Comment executer du code qui se trouve dans une string ?
    Par freddyboy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2005, 17h31

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