2010-06-23 11 views
2

J'ai une TextBox multiligne appelée Console. En cours d'exécution, cette zone de texte est remplie avec certaines données de communication. J'utiliseComment empêcher le défilement d'une zone de texte multiligne lors de l'ajout de texte?

TextBox.AppendText("txt\r\n"); 

pour lui ajouter une ligne et cela me permet d'avoir un défilement automatique vers le bas. Mon problème est que je veux être capable de ne pas le faire défiler automatiquement. Alors j'ai pensé que j'essaierais

TextBox.Text += "text"; 

Mais cela vous fait défiler jusqu'au début de la boîte. Ma dernière tentative a été d'utiliser TextBox.SelectionStart pour sauvegarder la position avant que j'écrive et la restituer à cela après, mais cela n'a pas semblé faire une différence et me ramène au début du texte.

int txtPosition = Console.SelectionStart; 
Console.Text += "TextToAdd"; 
Console.SelectionStart = txtPosition; 

Idéalement, je veux être en mesure d'avoir le séjour de la boîte où jamais il arrive à être et ne défilera pas au début ou à la fin du texte.

Répondre

2

Je pense que vous avez besoin d'un richtextbox au lieu d'une zone de texte générique et cela vous donnera la fonctionnalité que vous désirez.

Profitez-en!

+0

Merci, qui a travaillé beaucoup. Avoir d'autres problèmes maintenant, mais lentement à travers eux. – Andy

-1

Pour une zone de texte WinForms, vous pouvez devriez pouvoir le faire:

textBox.SelectionStart = 0; 
textBox.ScrollToCaret(); // force current position back to top