Vb.net vb:如何一次在列表框中选择多个项目?

Vb.net vb:如何一次在列表框中选择多个项目?,vb.net,listbox,Vb.net,Listbox,我有一个列表框,上面有从1到10的数字列表。 现在我想编程选择那些大于5的数字。但我也只想触发SelectedIndexChanged事件一次 我知道我可以使用addrange()方法一次将多个项目添加到列表框中 但似乎没有一个类似的解决方案可以同时选择多个项目 我该怎么做?你的问题有点不清楚,但 首先,您需要将Listbox SelectionMode设置为MultySimple。 然后使用ListBox1.SelectedItems.Count

我有一个列表框,上面有从1到10的数字列表。 现在我想编程选择那些大于5的数字。但我也只想触发SelectedIndexChanged事件一次

我知道我可以使用addrange()方法一次将多个项目添加到列表框中

但似乎没有一个类似的解决方案可以同时选择多个项目


我该怎么做?

你的问题有点不清楚,但

首先,您需要将Listbox SelectionMode设置为MultySimple。

然后使用ListBox1.SelectedItems.Count<2,这样它只在选择开始时触发SelectedIndexChanged事件一次。
当然,您可以编辑代码以满足您的需要,并让它随时触发

 Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    If ListBox1.SelectedItems.Count < 2 Then
        MsgBox("one")
    End If
End Sub

谢谢,但您只触发SelectedIndexChanged事件一次的方式并不是我所需要的。在SelectedIndexChanged事件中,我为列表框中的所有选定项目执行了大量繁重的工作。因此,我希望它只在选择完成后执行一次。在我的代码中确定选择完成的时间,即最后一个要选择的时间,是非常棘手的。我的列表框中的项目与地图中的一组点关联。我使用框选择来选择地图中的点,它反映回列表框选择。然后你需要提供更多信息。你可以根据需要编辑代码。如果你是唯一知道的人,别人怎么知道你完成选择的时间。
Dim l As New List(Of Integer)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For Each Item As Integer In ListBox1.Items
        If Item > 5 Then
            l.Add(ListBox1.FindString(Item))
        End If
    Next

    For SetItem As Integer = 0 To l.Count - 1
        For i = 0 To ListBox1.Items.Count - 1
            If i = l.Item(SetItem) Then
                ListBox1.SetSelected(i, True)
                Exit For
            End If
        Next
    Next
End Sub