我正在向一个WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。如何阻止这种情况并保留我的当前位置?(一个简短的代码片段会有所帮助)
我正在向一个WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。如何阻止这种情况并保留我的当前位置?(一个简短的代码片段会有所帮助)我正在向一个WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。如何阻止这种情况并保留我的当前位置?(一个简短的代码片段会有所帮助)
我正在向一个WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。如何阻止这种情况并保留我的当前位置?(一个简短的代码片段会有所帮助)实际上,AppendText()不能完成您想要的操作(尝试添加更多文本,到某个时候它就会出现问题)
答案实际上在Win32 API中,幸运的是,一个Stack Overflow用户已经完美地实现了这个行为: Auto-scrolling text box uses more memory than expected
<yourTextBox>.Text += "your new text";
而不是 <yourTextBox>.AppendText("your new text");
。SelectedText
(读/写)属性。您可以为其分配一些文本,该文本将出现在插入符位置,而不必滚动文本框。在此之前,您可以使用SelectionStart
将插入符移动到正确的位置。SelectionStart 没有按照我的意愿执行,原因不明。它被重置为 0。 我找到了这篇帖子,回答了我想要的内容(即将文本框用作日志)。答案是 TextBox.AppendText()