VB.NET 2010 - 我有一个RichTextBox,其中用户可以手动从另一源输入数据或复制/粘贴。 数据完成后他打去几个关键词将突出显示。 我的问题是,如果他复制/从其他来源粘贴的格式也被复制。 那么有时外面源有一个白色的字体和文本框我有一个白色的背景,因此它看起来就像他粘贴不信邪,他一次又一次地做它。
我正在寻找的是拦截粘贴动作到文本框中,这样我可以采取文字,并将其粘贴为纯ASCII格式没有一种方式。
与试验的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
这似乎工作,我所有的文字被保留,其所有的ASCII。 我想,如果我想采取了一步,我也可以把我的的RichTextbox字体和前景色,选择所有文本,然后指定字体和前景色的选择。