添加文本时阻止文本框滚动

时间:2009-02-26 11:15:19

标签: .net winforms user-interface textbox scroll

我正在向WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。我怎样才能防止这种情况并保持目前的位置? (一个简短的代码片段会有帮助)

4 个答案:

答案 0 :(得分:3)

实际上,AppendText()不会做你想要的(尝试添加更多的文字,在某些时候它都会出错)

答案实际上在Win32 API中,幸运的是,SO用户已经完全实现了这种行为: Auto-scrolling text box uses more memory than expected

答案 1 :(得分:1)

在C#中,您可以尝试<yourTextBox>.Text += "your new text";而不是<yourTextBox>.AppendText("your new text");

答案 2 :(得分:1)

问题的正确和简单答案是SelectedText(读/写)属性。您可以为其指定一些文本,该文本将显示在插入符号位置,而不必滚动文本框。您可以在此之前使用SelectionStart将插入符号移动到正确的位置。

答案 3 :(得分:-1)

由于某种原因,SelectionStart没有按我的意愿行事。它被重置为0。 我发现this post能够回答我的想法(将文本框用作日志)。答案是TextBox.AppendText()