Vb.net 粘贴到RichTextBox结果重复粘贴

Vb.net 粘贴到RichTextBox结果重复粘贴,vb.net,richtextbox,paste,Vb.net,Richtextbox,Paste,我在vb.net(RTBDocPanel)中有一个复制按钮,可以从RichTextBox复制文本,如下所示: 'Copia la selección Private Sub ToolStripButtonCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButtonCopy.Click Clipboard.Clear() Clipboard.SetTex

我在vb.net(RTBDocPanel)中有一个复制按钮,可以从RichTextBox复制文本,如下所示:

'Copia la selección
Private Sub ToolStripButtonCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButtonCopy.Click

    Clipboard.Clear()
    Clipboard.SetText(RTBdocPanel.SelectedRtf, TextDataFormat.Rtf)

End Sub
在此之后,我尝试粘贴为:

'Pega selección
Private Sub PegarSeleccion()

    Dim iData As IDataObject = Clipboard.GetDataObject()

    'Pega el texto si es texto, RTF si es RTF
    If iData.GetDataPresent(DataFormats.Text) Then
        RTBdocPanel.SelectedText = Clipboard.GetText(TextDataFormat.Text)
    ElseIf iData.GetDataPresent(DataFormats.Rtf) Then
        RTBdocPanel.SelectedRtf = Clipboard.GetData(DataFormats.Rtf).ToString
    End If

End Sub
但结果是重复的格式化文本(例如,复制“Hello”,粘贴“HelloHello”)

我找不到错误


提前感谢

您的问题对我来说并不明显,我也尝试了您的代码,在我预期之外无法实现任何事情。我复制框中的选定文本,并可以复制它。我能得到你的结果的唯一方法是键入Hello,选择它,复制它,然后立即粘贴。这将粘贴在我复制的原始Hello之后。你是不是想剪下那些会去掉原版的?你好,查尔斯。提前感谢您的关注。不,我也有。在我的表格中剪切按钮。问题出现在粘贴任何位置。遗憾的是,我无法复制该问题。调用PegarSeleccion()方法的代码中是否存在某些问题?我也可能会建议在这个sub的开始处设置一个断点,看看它是否会被调用两次,从而产生您的结果。嘿,Charles,我终于发现了错误(实际上是两个错误),但它们不在代码的这一部分(很抱歉):1。在Ctrl+V操作中,如果e.Modifiers=Keys.Control和e.KeyCode=Keys.V,那么-将用“AndAlso”代替“And”和“2”。这意味着更好的主意是将Ctrl+V置于KeyUp而不是keyDown事件中。无论如何,非常感谢你的想法。如果这不仅仅是一个学习练习,我必须问你为什么要复制WinForm RTB已经公开用于剪切/复制/粘贴的功能?另外,只要
ShortCutsEnabled=True
,就不需要解释Ctrl+V和其他标准键盘快捷键。