72 votes

Comment faire défiler une RichTextBox vers le bas?

Je dois pouvoir faire défiler un RichTextBox vers le bas, même si je n’ajoute pas de texte. Je sais que je peux ajouter du texte, puis l'utiliser pour définir le début de la sélection. Cependant, je veux m'assurer que c'est au bas pour des raisons visuelles, donc je n'ajoute aucun texte.

103voto

Brandon Points 35624

Vous pouvez essayer de définir la propriété SelectionStart sur la longueur du texte, puis d'appeler la méthode ScrollToCaret.

 richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
 

17voto

DrWu Points 28

La RichTextBox continuera à défiler jusqu'à la fin si elle a le focus et que vous utilisez AppendText pour ajouter les informations. Si vous définissez HideSelection sur False, il conservera sa sélection lorsqu'il perd le focus et restera en défilement automatique.

J'ai conçu une interface graphique Log Viewer utilisant la méthode ci-dessous. Il a utilisé jusqu'à un noyau complet de suivre. La suppression de ce code et la définition de HideSelection sur False ont réduit l’utilisation de la CPU à 1-2%

 //Don't use this!
richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
 

14voto

mxgg250 Points 237

Dans WPF, vous pouvez utiliser ScrollToEnd:

 richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
 

-1voto

Il n'y a pas besoin de:

 richTextBox.SelectionStart = richTextBox.Text.Length;
 

Cela fait le tour:

 richTextBox.ScrollToCaret();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X