First, in order to access your TextBox during your search, you must put your search in BackgroundWorkerand place the (intermediate) results with BeginInvoke()in your TextBox. Thus, your GUI does not freeze during the search.
TextBox.AppendText(), . , AppendText:
textBoxMessages.SelectionStart = textBoxMessages.Text.Length;
textBoxMessages.ScrollToCaret();
/ , , AppendText , SelectionStart Text.Lenght, , AppendText
Update
, , . , RichTextBox, .
, : ScintillaNET. .
, ScintillaNet ( Scintilla), - . , .