如何防止添加文本时滚动多行文本框?
问题描述:
我有一个称为控制台的多行文本框。在运行时,这个文本框正在填充一些通信数据。我使用如何防止添加文本时滚动多行文本框?
TextBox.AppendText("txt\r\n");
向它添加一行并允许我自动向下滚动它。我的问题是我想能够不让它自动向下滚动。所以我想我会尝试
TextBox.Text += "text";
但是,这会滚动到框的开头。我最近的尝试是使用TextBox.SelectionStart在写完之前保存位置并将其恢复为之后的状态,但这似乎没有什么区别,仍然使我回到文本的开头。
int txtPosition = Console.SelectionStart;
Console.Text += "TextToAdd";
Console.SelectionStart = txtPosition;
理想情况下,我希望能够将盒子保持在原来的位置,而不是滚动到文本的开头或结尾。
答
我认为你需要给你一个richtextbox而不是一个通用的文本框,这将为你提供你想要的功能。
享受!
答
对于一个WinForms文本框,你可能应该能够做到这一点:
textBox.SelectionStart = 0;
textBox.ScrollToCaret(); // force current position back to top
谢谢,这真是棒极了。现在有其他一些问题,但慢慢地通过他们。 – Andy 2010-06-23 19:04:22