Capture CTRL+V coller dans une zone de texte .NET

VB.NET 2010 - j'ai un RichTextbox dans laquelle l'utilisateur peut saisir manuellement des données ou de le copier/coller à partir d'une autre source. Après la collecte de données est terminée, il la frappe go et quelques mots clés sont mis en évidence. Mon problème est que si il copie/colle provenant d'une autre source que le formatage est également copié. Eh bien, parfois à l'extérieur de la source a une police blanche et ma zone de texte a un fond blanc, il apparaît comme il a collé rien et il le fait encore et encore.

Ce que je cherche est un moyen d'intercepter l'action de collage dans la zone de texte de sorte que je peux prendre ce texte et de le coller au format ASCII pur, sans mise en forme.

Modifier après avoir expérimenté avec 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

Cela semble fonctionner et tout mon texte est conservé et tous ses ASCII. Je pense que si je voulais faire un pas de plus, j'ai pu également prendre la police et forecolor de mon RichTextbox, sélectionnez tout le texte, puis d'attribuer la police et forecolor à la sélection.

OriginalL'auteur sinDizzy | 2013-04-11