我创建了一个简单的函数来将文本附加到Richtextbox。我希望这个文本总是在顶部滚动,将旧文本滚动到底部。
Private Sub BoxMessaggio(ByVal testo As String, ByVal errore As Integer)
Me.ActiveControl = RichTextBox1
RichTextBox1.Focus()
If errore Then
RichTextBox1.SelectionColor = Color.Red
Else
RichTextBox1.SelectionColor = Color.Black
End If
RichTextBox1.AppendText(testo + vbNewLine)
RichTextBox1.SelectionStart = RichTextBox1.Text.Length
'RichTextBox1.Select(RichTextBox1.TextLength, 0)
RichTextBox1.ScrollToCaret()
End Sub
我以这种方式调用函数:
BoxMessaggio(Now + ": " + ex.Message, 1)
我在StackOverflow或某些论坛上尝试了很多不同的解决方案,但没有人适合我,文字总是添加在底部......
答案 0 :(得分:1)
将RichTextBox1.Text
视为String
(因为它是),调用Insert
,然后将新文本放在强者的前面。
RichTextBox1.Text = RichTextBox1.Text.Insert(0, testo + vbNewLine)
滚动。不要拨打Focus
或ScrollToCaret
,它会保留在最顶层查看最近添加的文字。