text在clipbord中,在VB.Net的ListBox中粘贴两次

时间:2017-12-19 13:05:42

标签: .net vb.net copy-paste paste

我想使用以下代码在vb.net中粘贴clipbord中的数据:

 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次?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

在这么短的时间内感谢您的答案。事实上。我想出了问题是什么(经过多次修改后),这真是一个愚蠢的错误。我忘记了,在代码的开头,(在加载时),之后我添加了一个处理程序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

因此,以这种方式,事件上的粘贴被重复