来自剪贴板的文本在 VB.Net 中的列表框中粘贴两次

text From the clipbord is pasted twice in a ListBox in VB.Net

我想使用以下代码将剪贴板中的数据粘贴到 vb.net 中:

 Private Sub MenuItemPaste_Click(sender As Object, e As EventArgs) Handles MenuItemPaste.Click

    Dim items() As String = Clipboard.GetText.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)  ' 
    ListBox1.Items.AddRange(items)

为什么选中的文字被粘贴了2次?

您的代码似乎是正确的,没有理由将文本粘贴两次!我想您需要先清除 ListBox1,然后再在 MenuItemPaste_Click 事件中向其添加文本。所以你可以尝试使用下面的代码:

ListBox1.Items.Clear()
Dim items() As String = Clipboard.GetText.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)  ' 
ListBox1.Items.AddRange(items)

感谢您在这么短的时间内做出答复。实际上。我弄清楚了问题出在哪里(经过多次修改),这确实是一个愚蠢的错误。我忘记了,在代码的开头(加载时),我在之后添加了一个处理程序 AddHandler MenuItemPaste.Click, AddressOf MenuItemPaste_Click,为了执行 MenuItemPaste_Click sub 我是这样写的:

Private Sub MenuItemPaste_Click(sender As Object, e As EventArgs) Handles MenuItemPaste.Click

      Dim items() As String = Clipboard.GetText.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)   
      ListBox1.Items.AddRange(items)

End Sub

这样一来,事件上的粘贴就被复制了