Нет необходимости изобретать колесо здесь. У вас есть два варианта сделать это. Во-первых, вы можете подключиться к событиям, вызываемым вашим RichTextBox, и делать то, что вам нужно:
Private Sub RichTextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
'Add code to figure out what changed
'This will most likely involve an variable storing the original text and comparing it to what the
'RichTextBox now contains
End Sub
Есть несколько проблем с этим. Если вам приходится использовать функциональность во многих формах, вы начинаете дублировать код везде. Вам также понадобятся некоторые вспомогательные переменные для отслеживания этих данных.
Лучшим решением было бы создать собственный класс RichTextBox. Очевидно, что вам не нужно начинать заново с нуля, поэтому вы можете вместо этого наследовать от существующего класса, а затем расширять его, как хотите.
Public Class MyRichTextBox
Inherits System.Windows.Forms.RichTextBox
Private oldText As String
Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
MyBase.OnTextChanged(e)
If Me.Text <> oldText Then
'Figure out what changes were made
End If
oldText = Me.Text
End Sub
Public Sub SyntaxHighlighting()
'Add code here to highlight syntax within the textbox
End Sub
End Class
После того, как вы скомпилировали MyRichTextBox, он должен появиться на вкладке Toolbox, а затем вы можете перетащить его в форму.