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

问题描述 投票:0回答:2

我想使用以下代码在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次?

.net vb.net copy-paste paste
2个回答
2
投票

您的代码似乎正确,没有理由将文本粘贴两次!我想你需要在ListBox1事件中添加文本之前先清除MenuItemPaste_Click。因此,您可以尝试使用以下代码:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.