我有一个带有复选框的ListView
控件,该控件中填充了可能删除的文件列表。通过复选框选择要删除的对象。要继续删除,必须单击按钮控件。我正在尝试使其仅在至少一项被选中时才启用。
检查项目时,将调用以下事件处理程序:
Private Sub ListView1_ItemCheck1(sender As Object, e As System.Windows.Forms.ItemCheckEventArgs) Handles ListView1.ItemCheck
然后发现e.Value = 0
表示该项目已选中,从而触发了按钮的启用。
但是,当取消选中同一项目时,我得到e.Value = 1
,但是由于系统似乎仍在检查该项目,因此我无法执行任何操作。我无法使用此按钮禁用此按钮(因为现在没有选中的项目)。计数为0时,已检查项目的计数为1。
Doevents
,Update
和Refresh
无济于事。该项目实际上未选中,但系统看不到。有没有人有办法解决吗?实际上,它仅适用于一项选中的项目-否,而且没有。
答案 0 :(得分:0)
我建议尝试这样的事情:
Private Sub ListView1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles ListView1.ItemCheck
Button1.Enabled = (ListView1.CheckedItems.Count > 0)
End Sub
答案 1 :(得分:0)
遗憾的是,这不是为我工作。第一次检查,没有任何反应,随后的点击(切换相同的单件物品)以反向方式工作-如果未进行任何检查,则启用按钮,反之亦然。