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

4

我有一个名为Console的多行文本框。在运行时,该文本框将被一些通信数据填充。我使用

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

我想在其中添加一行,并使其自动向下滚动。但我的问题是,我希望能够不让它自动向下滚动。因此,我想尝试

TextBox.Text += "text";

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

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

理想情况下,我希望文本框可以停留在任何位置而不会滚动到文本的开头或结尾。
2个回答

2

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

祝您使用愉快!


谢谢,那个很好用。现在还有一些其他问题,但正在慢慢解决中。 - Andy

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接