防止文本框在添加文本时滚动

4

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

我正在向一个WinForms TextBox对象添加新的日志行,这会导致文本框滚动到底部。如何阻止这种情况并保留我的当前位置?(一个简短的代码片段会有所帮助)
4个回答

3

实际上,AppendText()不能完成您想要的操作(尝试添加更多文本,到某个时候它就会出现问题)

答案实际上在Win32 API中,幸运的是,一个Stack Overflow用户已经完美地实现了这个行为: Auto-scrolling text box uses more memory than expected


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

1
正确而简单的答案是SelectedText(读/写)属性。您可以为其分配一些文本,该文本将出现在插入符位置,而不必滚动文本框。在此之前,您可以使用SelectionStart将插入符移动到正确的位置。

-1

SelectionStart 没有按照我的意愿执行,原因不明。它被重置为 0。 我找到了这篇帖子,回答了我想要的内容(即将文本框用作日志)。答案是 TextBox.AppendText()


链接似乎有问题。 - Jesse Craig

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