找到选定的 ListView 项,然后在单击时执行操作

Find the selected ListView item and then perform an action on click

我试过这个:

 If ListView1.SelectedItems = 1 Then
        'do somehting
    ElseIf ListView1.SelectedItems = 2 Then
        'do something else
    Else
        'do another thing
    End If

但是没有用。谁能告诉我我做错了什么?

ListView 控件的 SelectedItems 属性 是一个集合(可能包含多个 selected 项)。

考虑这样一种情况,您可以控制 ListView1,并在表单加载事件中手动向其添加项目,如下所示:

ListView1.Items.Add("Dog")
ListView1.Items.Add("Cat")
ListView1.Items.Add("Bird")

那么你就有了一个按钮控件Button1,它的点击事件代码如下:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim s As String = ""
    For Each item As ListViewItem In ListView1.SelectedItems
        s += item.Text + vbCrLf
    Next
    MsgBox(s)
End Sub

当您单击按钮时,它会一次遍历所有 selected 项目的集合,访问每个项目的 .Text 属性 并将它们添加到输出。

因此,当您说“查找 selected listview 项目”时,可能有多个 selected 项目,因此也许您可以更准确地解释您想要的内容可以看到点击发生了什么,因为控件有几种可能适用的事件类型。前任。单击、ItemChecked、MouseClick、MouseDoubleClick 等

更新:我可能误解了你的问题。请提供更多详细信息。

也许这就是您想要的?

Private Sub ListView1_SelectedIndexChanged(sender As Object, e As ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged
    If e.Item.Text = "Dog" Then MsgBox("It's a dog")
End Sub

处理这些事件可能很棘手。例如那个 msgbox 会弹出你 select 狗。但当 selection 从狗变成其他东西时它也会弹出,因为那仍然是一个 selection 更改事件。然而,这应该让你朝着正确的方向前进。您可能需要仔细查看不同的事件以找出最适合您的情况的事件 - 您可能需要处理多个事件。