如何在添加文本时阻止多行文本框滚动?

时间:2010-06-23 18:35:36

标签: c# textbox multiline

我有一个名为Console的多行TextBox。在运行时,此文本框中充满了一些通信数据。我用

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

向其添加一行,这样我就可以让它自动滚动下来。我的问题是我希望能够不让它自动滚动下来。所以我想我会尝试

TextBox.Text += "text";

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

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

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

2 个答案:

答案 0 :(得分:2)

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

享受!

答案 1 :(得分:-1)

对于WinForms文本框,您可能应该这样做:

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