我使用richtexbox
为我的应用程序添加日志。我也将它用作后台工作者的某种进度条。
我不打算详细介绍,但是应用程序循环遍历多个设备并收集数据,正在处理的当前数据显示在richtextbox的最后一行,并在每次处理新文件时被替换
这是一个小样本的日志。
Found 239 record(s), Transferred 239 record(s) from: 10.10.10.10 - 10/24/2016 7:37:45 PM
Found 42 record(s), Transferred 42 record(s) from: 10.10.10.11 - 10/24/2016 7:37:58 PM
43593...
处理时,最后一行将被其他一些数据替换。直到它完成并再次替换。
Found 239 record(s), Transferred 239 record(s) from: 10.10.10.10 - 10/24/2016 7:37:45 PM
Found 42 record(s), Transferred 42 record(s) from: 10.10.10.11 - 10/24/2016 7:37:58 PM
Found 2 record(s), Transferred 2 record(s) from: 10.10.10.12 - 10/24/2016 7:38:03 PM
986035...
我使用AppendText
将数据添加到richtextbox,这样可以正常工作,并在添加新记录时将richtextbox滚动到底部。但是对于我的"进度条"我替换了最后一行:
Me.rtbLogs.Rtf = Me.rtbLogs.Rtf.Replace(Me.rtbLogs.Lines(rtbLogs.Lines.Length - 1), e.UserState.ToString())
一切正常,除非它替换文本,richtextbox会滚动回到顶部。
答案 0 :(得分:1)
您需要滚动到文本的末尾。试试这个:
' Append the new text and a new line
RichTextbox1.AppendText("New Text" & vbNewLine)
' Sets the starting point of the selection
RichTextbox1.SelectionStart = Len(RichTextbox1.Text)
' Scrolls to the caret
RichTextbox1.ScrollToCaret()
' Select the range
RichTextbox1.Select()