经过一个小时的尝试,我终于做到了。
首先像这样设置一个全局变量..
Dim a As Integer = 0
在正常的点击事件中将其设置为 0,这将首先被触发。
Private Sub ListView1_Click(sender As System.Object, e As System.EventArgs) Handles ListView1.Click
a = 0
End Sub
并在检查的列表视图项目中,检查 a = 0。
Private Sub ListView1_ItemChecked(sender As System.Object, e As System.Windows.Forms.ItemCheckedEventArgs) Handles ListView1.ItemChecked
If a = 0 Then
For Each item In lwSources.Items
a = 1
If Not item.Index = e.Item.Index Then
item.Checked = False
End If
Next
End If
End Sub
我认为问题在于,当我们更改选中的值时,它会再次触发事件但没有发送者,这就是为什么它们都进入未选中状态的原因。