我想切换全选/取消全选复选框。示例:
如果列表视图中选定的项目总数等于列表视图中的项目总数,则将选中全选/取消全选复选框,如果不选中,则取消选中全选/取消选中全选复选框。
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
希望这能有所帮助。