如何在单击Listview Item时切换全选/取消全选复选框



我想切换全选/取消全选复选框。示例:

如果列表视图中选定的项目总数等于列表视图中的项目总数,则将选中全选/取消全选复选框,如果不选中,则取消选中全选/取消选中全选复选框。

Dim c,listcount As Integer
listcount = ListView1.ListItems.Count
If c = listcount Then
    CheckBox1.Value = True
Else
    CheckBox1.Value = False
End If

我的全选和取消全选代码很好,当您选中或取消选中全选/取消全选复选框时,列表视图中的所有项目也将选中或取消选择。当所选项目总数等于列表视图中的项目总数时,上面的代码将切换全选/取消全选复选框,这是通过选中或单击列表视图中项目来触发的,但问题是,它还触发了我的全选/取消全选选框

有人能帮我吗?

这是我的全选/取消全选复选框的代码:

    Private Sub CheckBox1_Click()
        'check if this is already check or not
        If CheckBox1.Value = True Then
            seldesel (True)
        Else
            seldesel (False)
        End If
    End Sub
Function seldesel(a As Boolean)
    listcount = ListView1.ListItems.Count
    For X = 1 To listcount
        ListView1.ListItems(X).Checked = a
    Next X
End Function

为了防止CheckBox1_Click子例程发生,您可以将触发器从Click更改为CheckBox1_MouseDown。这样,它只会在用户手册用鼠标检查时运行它的代码。

此外,在MouseDown中,代码在实际选中框之前运行。要修复您的代码,请更改此行:

If CheckBox1.Value = True Then

简单来说就是这个

If CheckBox1.Value = False Then

希望这能有所帮助。

最新更新