2010-06-23 122 views
2

我有一个称为控制台的多行文本框。在运行时,这个文本框正在填充一些通信数据。我使用如何防止添加文本时滚动多行文本框?

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

向它添加一行并允许我自动向下滚动它。我的问题是我想能够不让它自动向下滚动。所以我想我会尝试

TextBox.Text += "text"; 

但是,这会滚动到框的开头。我最近的尝试是使用TextBox.SelectionStart在写完之前保存位置并将其恢复为之后​​的状态,但这似乎没有什么区别,仍然使我回到文本的开头。

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

理想情况下,我希望能够将盒子保持在原来的位置,而不是滚动到文本的开头或结尾。

回答

2

我认为你需要给你一个richtextbox而不是一个通用的文本框,这将为你提供你想要的功能。

享受!

+0

谢谢,这真是棒极了。现在有其他一些问题,但慢慢地通过他们。 – Andy 2010-06-23 19:04:22

-1

对于一个WinForms文本框,你可能应该能够做到这一点:

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