TextBox, défilement vertical automatique [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
17 février 2007
-
Messages postés
3
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
17 février 2007
-
Bonjour à tous,
j'utilise une TextBox comme fenêtre pour stocker le log d'activité. Je souhaiterais faire défiler automatiquement la TextBox tout en bas quand j'ajoute du text (pour que l'utilisateur voit le dernier texte ajouté).

Je n'ai pas trouvé comment mettre la main sur les scrollbars associées à la TextBox. Quelqu'un a une idée ?

5 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
Salut,

tb = new TextBox( );
tb.Multiline = true;
tb.ScrollBars = ScrollBars.Both;
tb.Dock = DockStyle.Fill;
tb.TextChanged += delegate
{
    this.tb.Focus( );
    this.tb.Select( this.tb.Text.Length, 0 );
    this.tb.ScrollToCaret( );
};
Messages postés
3
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
17 février 2007

Merci, ça fonctionne bien. Par contre la TextBox clignote quand j'ajoute du text.

Y a-t-il un moyen pour désactiver/réactiver le rafraissement pendant l'ajout du text et le défilement du contrôle:

                // Il faudrait désactiver le refresh ici
                this.logTextBox.Text += message + "\r\n";
                this.logTextBox.Select( this.logTextBox.Text.Length, 0 );
                this.logTextBox.ScrollToCaret();
                // Il faudrait réactiver le refresh ici
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Au lieu de mettre this.logTextBox.Text += message + "\r\n";
Utilise la méthode AppendText... Je ne sais pas si ça va résoudre ton problème, mais ça sera de toute façon mieux en terme de performance...

<hr />
-Blog-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
46
Et Environment.NewLine a la place de "\r\n" ;)

Mx
MVP C# 
Messages postés
3
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
17 février 2007

Merci pour les conseils. Ca clignote toujours mais au moins on arrive maintenant à lire le texte (l'affectation à la propriété .Text cause visiblement un effacement complet du texte avant rafraichissement).