Przechwytuj CTRL + V lub wklej w polu tekstowym w .NET

VB.NET 2010 - Mam RichTextbox, w którym użytkownik może ręcznie wprowadzić dane lub skopiować / wkleić z innego źródła. Po ukończeniu danych trafia on i podświetlane są kilka słów kluczowych. Moim problemem jest to, że jeśli skopiuje / wklei z innego źródła, formatowanie również zostanie skopiowane. Czasami zewnętrzne źródło ma białą czcionkę, a moje pole tekstowe ma białe tło, więc wygląda na to, że nic nie wkleił i robi to ciągle.

To, czego szukam, to sposób na przechwycenie akcji wklejania do pola tekstowego, dzięki czemu mogę pobrać ten tekst i wkleić go jako czysty ASCII bez formatowania.

Edytuj po eksperymentowaniu z KeyDown

Private Sub txtRch_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtRch.KeyDown
    If e.Modifiers = Keys.Control AndAlso e.KeyCode = Keys.V Then
        With txtRch
            Dim i As Integer = .SelectionStart          'cache the current position
            .Select(0, i)                               'select text from start to current position
            Dim s As String = .SelectedText             'copy that text to a variable
            .Select(i, .TextLength)                     'now select text from current position to end
            Dim t As String = .SelectedText             'copy that text to a variable
            Dim u As String = s & Clipboard.GetText(TextDataFormat.UnicodeText) & t 'now concatenate the first chunk, the new text, and the last chunk
            .Clear()                                    'clear the textbox
            .Text = u                                   'paste the new text back into textbox
            .SelectionStart = i                         'put cursor back to cached position
        End With

        'the event has been handled manually
        e.Handled = True
    End If
End Sub

To wydaje się działać i cały mój tekst zostaje zachowany, a cały ASCII. Myślę, że jeśli chciałbym zrobić krok dalej, mógłbym także wziąć czcionkę i kolor z mojej skrzynki RichTextbox, zaznaczyć cały tekst, a następnie przypisać czcionkę i kolor do zaznaczenia.

questionAnswers(1)

yourAnswerToTheQuestion