Don't add to the Text property. Call AppendText instead. I just tried this and it appears to do exactly what you want:
vb.net Code:
Private Sub AppendUserText(text As String)
AppendText(text, Color.Red)
End Sub
Private Sub AppendBotText(text As String)
AppendText(text, Color.Blue)
End Sub
Private Sub AppendText(text As String, colour As Color)
With RichTextBox1
.SelectionStart = .TextLength
.SelectionColor = colour
.AppendText(text & Environment.NewLine)
End With
End Sub
If you set the selection formatting at the end of the text and then append, the appended text will take on that formatting, so there's no need to select existing text and format it unless you want to change it later.