【问题标题】:vb: How to select multiple items in a Listbox at once?vb:如何一次选择列表框中的多个项目?
【发布时间】:2014-09-30 03:48:12
【问题描述】:

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

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

但是一次选择多个项目似乎没有类似的解决方案?

我该怎么做?

【问题讨论】:

    标签: vb.net listbox


    【解决方案1】:

    你的问题有点不清楚,但是...

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

    然后你使用 ListBox1.SelectedItems.Count 当然,您可以编辑代码以满足您的需求,并让它随时触发。

     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
    

    要选择大于 5 的所有内容,您需要制作一个整数列表。
    然后使用 for each 循环来获取具有所需值的整数列表中的项目。

    然后在 for 循环中使用整数列表来选择列表框中的项目。

    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
    

    【讨论】:

    • 谢谢,但您只触发一次 SelectedIndexChanged 事件的方式不在我需要的地方。我在 SelectedIndexChanged 事件中为列表框中的所有选定项目做了很多繁重的工作。所以我希望它在选择完成后只执行一次。
    • 在我的代码中确定选择何时完成非常棘手,即最后一个要选择的。我的列表框中的项目与地图中的一堆点相关联。我使用框选择来选择地图中的点,它反映回列表框选择。
    • 那么您需要提供更多信息。您可以根据需要编辑代码。如果您是唯一知道的人,如何知道您何时完成选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多