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 :

Textbox text et saut de ligne automatique [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut Textbox text et saut de ligne automatique
    Bonsoir, je viens de découvrir un problème (surement très bête à résoudre) avec un textbox lorsque je lui indique un text a affiché.
    Alors voila, j'ai un texte à afficher dans un textbox (Jusque là rien de grandiose me direz-vous ^^)
    Le soucis est que (Je précise que le textbox est en multiline au cas ou ...) lorsque j'ajoute mon texte en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Delegate Sub afficher_texte(ByVal info() As String)
    Textbox1.text += info(2) & info(4) info(6)
    end sub
    Mon texte s'affiche bien dans la textbox mais il a automatiquement sauté une ligne entre info(4) et info(6)
    Je précise que info(2) et info(4) sont des nombres, je suppose donc que sa vient de sa.
    J'ai alors essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Textbox1.text += Convert.ToString(info(2)) & Convert.ToString(info(4)) & info(6)
    Qui nest pas tres logique en soit puisque ce sont deja des "strings" m'enfin je n'avais pas d'autres idées.
    Alors comme vous vous en doutez cela n'a strictement rien changé , il y a toujours un saut de ligne qui se fait tout seul.

    Si quelqu'un pouvait m'expliquer comment résoudre le problème tout en me donnant la raison de ce phénomène j'en serai ravie.
    Bonne soirée à tous

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir peltiarn,

    Avant tout il faut m'expliquer comment tu peux avoir du code dans le corps d'une delegate sub ???

    De plus ce code génère automatiquement une erreur car il manque l'opérateur de concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Textbox1.text += info(2) & info(4) info(6)
    Ensuite je le répète pour la énième fois pour éviter les futures surprises l'opérateur de concaténation en VbNet c'est l'esperluette (&) et non le signe (+) ! (contrairement à C#)

    Attention je ne dis pas que c'est interdit mais le jour ou ton code aura 2 chiffres de chaque côté du signe + le compilateur ne concaténera pas il fera la somme !

    Je ne sais pas comment tu as déclarés ton tableau mais voilà ce qui fonctionne chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class Form1
     
        Dim info() As String = New String(6) {"Un", "Deux", "Trois", "Quatre", "Cinq", "Six", "Sept"}
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            afficher_texte(info)
        End Sub
     
        Sub afficher_texte(Info() As String)
            TextBox1.Text &= Info(2) & Info(4) & Info(6)
        End Sub
    End Class
    Maintenant faut voir si la largeur de ton TextBoxBox n'est pas plus petite que la largeur des chaines concaténées :

    http://imabox.fr/a3/1411052136LVL9A746.png

    http://imabox.fr/a3/1411052137nNi0mV24.png


    A+

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    De plus ce code génère automatiquement une erreur car il manque l'opérateur de concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Textbox1.text += info(2) & info(4) info(6)
    Je ne l'ai pas oublié dans mon code c'est seulement une erreur d'inattention sur mon poste

    Ensuite je le répète pour la énième fois pour éviter les futures surprises l'opérateur de concaténation en VbNet c'est l'esperluette (&) et non le signe (+) ! (contrairement à C#)
    Attention je ne dis pas que c'est interdit mais le jour ou ton code aura 2 chiffres de chaque côté du signe + le compilateur ne concaténera pas il fera la somme !
    Oui je sais bien mais j'ai justement c'ette habitude car j'étudie le C# toute la semaine à mon établissement

    Je ne sais pas comment tu as déclarés ton tableau mais voilà ce qui fonctionne chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class Form1
     
        Dim info() As String = New String(6) {"Un", "Deux", "Trois", "Quatre", "Cinq", "Six", "Sept"}
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            afficher_texte(info)
        End Sub
     
        Sub afficher_texte(Info() As String)
            TextBox1.Text &= Info(2) & Info(4) & Info(6)
        End Sub
    End Class
    Je procède ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim info As String() = {cut(2), cut(3), cut(4), cut(5), cut(6), cut(7) & "/" & cut(8), cut(9), cut(10), cut(11), cut(12), cut(13), cut(14)}
    Maintenant faut voir si la largeur de ton TextBoxBox n'est pas plus petite que la largeur des chaines concaténées :
    Non j'y avais déjà pensé mais c'est loin d’être le cas

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 167
    Points
    10 167
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par wallace1 Voir le message
    Bonsoir peltiarn,

    Ensuite je le répète pour la énième fois pour éviter les futures surprises l'opérateur de concaténation en VbNet c'est l'esperluette (&) et non le signe (+) ! (contrairement à C#)

    Attention je ne dis pas que c'est interdit mais le jour ou ton code aura 2 chiffres de chaque côté du signe + le compilateur ne concaténera pas il fera la somme !

    A+
    Sans vouloir déclarer de guerre à quicconque; pour éviter le "choc des opérateurs", on peut aussi utiliser la méthode concat de la classe String du Framework. (Cela marche également en C aiguisé et en VB.)

    Pour être Politically Correct (Framework Correct ) on pourrait jouer comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub afficher_texte(Info() As String)
         ' TextBox1.Text &= Info(2) & Info(4) & Info(6)
        TextBox1.Text = string.concat(TextBox1.Text, Info(2), Info(4),Info(6))
    End Sub
    Ou encore, en utilisant également la méthode AppendText

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub afficher_texte(Info() As String)
       ' TextBox1.Text &= Info(2) & Info(4) & Info(6)
       Dim temporaire as String =  string.concat( Info(2), Info(4),Info(6))
       TextBox1.AppendText( Temporaire)
    End Sub

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

Discussions similaires

  1. [XL-2003] Sauts de Ligne automatiques sur 2 Textbox
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 14/08/2009, 14h52
  2. Saut de ligne automatique
    Par sbeprod dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/12/2008, 21h50
  3. [MySQL] Saut de ligne automatique au bout de x caractères
    Par freija dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2008, 12h19
  4. [W3C] Désactiver les sauts à la ligne automatique ?
    Par Ekinoks dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 17/02/2007, 06h22
  5. [Système] Tronquer un long texte à un saut de ligne
    Par php_de_travers dans le forum Langage
    Réponses: 1
    Dernier message: 14/05/2006, 22h33

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