行を超えたものは無視されるため、comboBox に貼り付ける前に、改行を削除して空白に置き換えようとしています。私はこれを試しています:
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 のテキスト ボックスに貼り付けてみました。 -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