VB 2010 ListviewItemCheck

时间:2018-11-02 15:47:41

标签: .net vb.net listview

我有一个带有复选框的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。

DoeventsUpdateRefresh无济于事。该项目实际上未选中,但系统看不到。有没有人有办法解决吗?实际上,它仅适用于一项选中的项目-否,而且没有。

2 个答案:

答案 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)

遗憾的是,这不是为我工作。第一次检查,没有任何反应,随后的点击(切换相同的单件物品)以反向方式工作-如果未进行任何检查,则启用按钮,反之亦然。