我在userform中有一个删除按钮,用于从列表视图中删除所选项目。问题是,当没有选择项目时(至少没有突出显示),它会删除第一个项目。我怎么知道是否没有选择项目,所以我可以避免删除任何内容?
这是我尝试过的,当没有选择任何内容时,它仍会移除第一个项目。
Private Sub CommandButtonDelete_Click()
If Not (ListView1.SelectedItem Is Nothing) Then
ListView1.ListItems.Remove ListView1.SelectedItem.Index
End If
End Sub
修改
问题似乎是总是选择了一个项目。那么,新问题,当用户点击listView外部时,如何取消选择该项?
答案 0 :(得分:0)
您可以采用与确定是否没有选择任何内容相同的方式取消选择项目。
例如:
Me.ListBox1.ListIndex = -1
将取消选择在ListBox1中选择的任何内容。请注意,这是ListBoxes,我没有使用ListViews,但我想同样适用。当然你需要把它放在某个地方。最简单的地方就是把它放在Private Sub UserForm_Click()
但是我不建议这样做,因为那时任何人在选择后点击用户形态时都会清除选择。放置它的最佳位置是Private Sub ListBox1_Click()
,然后确定是否已经选中了被点击的那个。在这种情况下,您编写代码以取消选择它...
确认这适用于ListBoxes(没有ListViews):
Private Sub CommandButton1_Click()
If Not (Me.ListBox1.ListIndex = -1) Then
Me.ListBox1.RemoveItem (Me.ListBox1.ListIndex)
End If
End Sub
'Will unselect any selection when user clicks anywhere on the userform (but not on a control ON the userform)
Private Sub UserForm_Click()
Me.ListBox1.ListIndex = -1
End Sub
Private Sub UserForm_Initialize()
Me.ListBox1.AddItem "asdf"
Me.ListBox1.AddItem "basdf"
End Sub