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