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 :

TextBox : Nombre de lignes


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut TextBox : Nombre de lignes
    Bonjour,
    J'aimerais connaitre le nombre de lignes que contient ma TextBox.
    En utilisant this.textBox1.Lines.Length j'ai le nombre de lignes mais il est calculé qu'a partir des retours a la lignes. Donc si un utlisateur ecrit une phrase qui rentre sur 2 lignes alors this.textBox1.Lines.Length == 1
    Quelqu'un pourrait m'aider svp?
    Merci bp pour votre aide
    Cédric

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    A part te débrouiller pour que la ligne reste sur une ligne même lorsqu'elle est longue (WordWrap à false et ScrollBars à Horizontal si besoin), je doute qu'il soit possible de faire ce que tu demandes. A moins de jouer avec la partie Graphics et MeasureString, mais je doute que cela en vaille la peine.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Merci pour ta réponse, en fait je demande ça car je voudrais ajuster la hauteur au fur et a mesure de la saisie.

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Je ne crois pas qu'il y ai d'option pour ça, de base en tout cas. Tu peux toujours essayer quelque chose dans ce genre, lorsque le texte de la TextBox est modifié. Ca ne gère que pour agrandir la zone texte, mais le principe est là.
    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
    // Création de l'objet Graphics pour la TextBox.
    Graphics g = textBox1.CreateGraphics();
    // Récupération du texte
    int nbLigne = 0;
    int hauteurLigne = 0;
    foreach (string line in textBox1.Lines)
    {
        // Mesure du texte
        SizeF size = g.MeasureString((string.IsNullOrEmpty(line)) ? " " : line, textBox1.Font);
        // Calcul du nombre de lignes prises par le texte.
        nbLigne += 1 + (int)(size.Width / textBox1.Width);
        // Récupération de la hauteur d'une ligne
        hauteurLigne = (int)Math.Ceiling(size.Height);
    }
     
    // Mise à jour de la hauteur de la TextBox
    int hauteurTotale = hauteurLigne * nbLigne;
    if (hauteurTotale > this.textBox1.Height)
    {
        this.textBox1.Height = hauteurTotale;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    merci bp. Je testerai ça demain

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 254
    Par défaut
    Je viens de tester. C'est nickel. J'ai juste un petit probleme d'ajustement de la hauteur : plus il y a de lignes et plus j'ai d'espace entre la dernière ligne et le bas de la Textbox. Mais dans l'idée c'est ça que je veux.
    J'ai un peu modifié le 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
     
    private void TextBox_TextChanged(object sender, System.EventArgs e)
            {
                // Création de l'objet Graphics pour la TextBox.
                Graphics g = textBox1.CreateGraphics();
                // Récupération du texte
                int nbLigne = 0;
                int hauteurLigne = 0;
                foreach (string line in textBox1.Lines)
                {
                    // Mesure du texte
                    SizeF size = g.MeasureString((string.IsNullOrEmpty(line)) ? " " : line, textBox1.Font);
                    // Calcul du nombre de lignes prises par le texte.
                    nbLigne += 1 + (int)(size.Width / textBox1.Width);
                }
                hauteurLigne = 20;
                // Mise à jour de la hauteur de la TextBox
                int hauteurTotale = hauteurLigne * nbLigne;
                if (hauteurTotale > 20 )
                    this.textBox1.Height = hauteurTotale;
                else
                    this.textBox1.Height = 20;
            }
    Merci bp
    Cédric

Discussions similaires

  1. nombre de lignes automatique pour un TextBox
    Par Hepil dans le forum ASP.NET
    Réponses: 9
    Dernier message: 19/11/2009, 11h50
  2. [Textbox] nombre de caracteres par ligne
    Par Gregory.M dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/09/2008, 21h52
  3. Nombre de lignes affichables ds une TextBox
    Par Isher dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/02/2008, 10h21
  4. Nombre de ligne dans un textbox
    Par intissar_g dans le forum ASP.NET
    Réponses: 5
    Dernier message: 06/08/2007, 17h04
  5. [] Nombre de lignes dans un textbox
    Par juanelcalor dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/07/2005, 11h54

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