我想在粘貼到組合框之前刪除換行符並替換爲空白,因爲它忽略了超出行的任何內容。我想這一點:在VB.NET組合框中捕獲ctrl + V
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而不是兩個。我試過Capture CTRL+V or paste in a textbox in .NET和http://social.msdn.microsoft.com/Forums/windows/en-US/096540f4-4ad4-4d24-ae12-cfb3e1b246f3/interceptingoverriding-paste-behavior-on-combobox,但沒有按照要求的結果。可能是我的代碼中缺少一些東西。請幫助我。
我得到這個Clipboard.GetText()所需的值。替換(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
你想在c#代碼或vb.net中使用嗎? – Nick
右鍵單擊 - >粘貼會發生什麼? – Pacane