我试图在粘贴到组合框之前删除换行符并替换为空格,因为它会忽略一行之外的任何内容。我正在尝试这个:
If e.Modifiers = Keys.Control AndAlso e.KeyValue = Keys.V Then Then
Clipboard.SetText(Regex.Replace(Clipboard.GetText(TextDataFormat.UnicodeText), "\n", " "))
e.Handled = True
End If
我在 KeyDown 事件中执行此操作,但它能够捕获 Ctrl 或 V 但不能同时捕获两者。我尝试捕获 CTRL+V 或粘贴到 .NET和http://social.msdn.microsoft.com/Forums/windows/en-US/096540f4-4ad4-4d24-ae12-cfb3e1b246f3/interceptingoverriding-paste-behavior的文本框中-on-combobox但没有所需的结果。可能是我的代码中缺少一些东西。请帮帮我。
我在调试时使用此 Clipboard.GetText().Replace(vbCrLf, " ") 获得所需的值,但我无法设置它。我尝试使用变量来设置它,但即便如此也没有改变。我还尝试清除剪贴板,然后用这个保存修改后的值的变量进行重置。
我正在使用 Winforms,我尝试了这个,但我的剪贴板仍然没有改变:
Private Const WM_PASTE As Integer = &H302
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_PASTE Then
Dim returnText As String = Nothing
If (Clipboard.ContainsText()) Then
returnText = Clipboard.GetText().Replace(vbCrLf, " ")
Clipboard.Clear()
Clipboard.SetText(returnText)
End If
End If
MyBase.WndProc(m)
End Sub