列表视图项是否真的被取消选择?

Are ListviewItems ever truely deselected?

我有一个包含多个项目的列表视图。如果我选择了一个项目并单击空白 space 或表单上的其他任何地方,突出显示将被删除,但 .FocusedItem & .SelectedItems 仍然报告一个项目被选中。

我想在没有选择列表视图项时触发事件,但似乎从未发生过。我如何检测是否没有选择任何项目,或者在单击第一个项目后是否真的发生了这种情况?

Private Sub lstCats_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstCats.SelectedIndexChanged
    If IsNothing(lstCats.FocusedItem) Then
        DisableGUI()
    Else
        EnableGUI()
        DisplayQuestions()
    End If
End Sub

基本上DisableGUI()永远不会执行。 谢谢!

您可以通过单击 ListView 控件的空白部分(不在其中一个项目上)来取消选择 ListView 中的所有项目。例如:

Private Sub lstCats_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstCats.SelectedIndexChanged
    If lstCats.SelectedItems.Count = 0 Then
        DisableGUI()
    Else
        EnableGUI()
        DisplayQuestions()
    End If
End Sub

注意如果你点击ListView中的一个item,SelectedItems会>0。如果你点击ListView的背景(不是在一个item上),SelectedItems会=0。这里假设有一部分不包含项目的 ListView 控件。