在 VB.Net 中将 ListView 属性 FocusedItem 设置为 "Nothing"
Setting ListView Property FocusedItem to "Nothing" in VB.Net
此 Sub 应该删除 "Selected/Focused" ListView 索引处的数据行(项目和子项目)。它可以工作,但是在删除 selected 行之后,焦点仍然位于刚刚删除的行的索引上。
现在当前的焦点索引包含一行新数据。我需要“ListView1.FocusedItem”重置为“Nothing”以使用户手动 select "Remove" 按钮之前的 listView 将删除任何内容。
就像现在一样,在第一行被 select 编辑并删除后,您可以继续单击 "Remove" 按钮,它将保留删除行直到 ListView 为空。
Private Sub btn_Remove_Click(sender As Object, e As EventArgs) Handles btn_Remove.Click
If IsNothing(Me.ListView1.FocusedItem) Then
MessageBox.Show("Please select an Item from the grocery list to be removed.")
ElseIf ListView1.SelectedItems.Count <= 0 Then
Me.ListView1.Items.RemoveAt(Me.ListView1.FocusedItem.Index)
' Need ListView1.FocusedItem to reset to "Nothing" here <<--------------------
Else
MessageBox.Show("There are no Items on the grocery list to be removed.")
End If
End Sub
您不能选择任何内容:
ListView1.SelectedItems.Clear()
正在将 "ListView1.FocusedItem.Focused" 设置为 "False" 似乎解决了我的问题。我添加了一个包含“ListView1.FocusedItem.Focused = False”的 if 语句。现在,当单击“删除”按钮并且没有在 ListView 中手动选择项目时,“Me.ListView1.FocusedItem“ 没什么。这是工作代码:
Private Sub btn_Remove_Click(sender As Object, e As EventArgs) Handles btn_Remove.Click
If IsNothing(Me.ListView1.FocusedItem) Then
MessageBox.Show("There are no Items selected to be removed from the grocery list.")
ElseIf ListView1.SelectedItems.Count >= 0 Then
Me.ListView1.Items.RemoveAt(Me.ListView1.FocusedItem.Index)
If ListView1.Items.Count > 0 Then
ListView1.FocusedItem.Focused = False
End If
Else
MessageBox.Show("An Error has halted thid process")
End If
End Sub
此 Sub 应该删除 "Selected/Focused" ListView 索引处的数据行(项目和子项目)。它可以工作,但是在删除 selected 行之后,焦点仍然位于刚刚删除的行的索引上。
现在当前的焦点索引包含一行新数据。我需要“ListView1.FocusedItem”重置为“Nothing”以使用户手动 select "Remove" 按钮之前的 listView 将删除任何内容。
就像现在一样,在第一行被 select 编辑并删除后,您可以继续单击 "Remove" 按钮,它将保留删除行直到 ListView 为空。
Private Sub btn_Remove_Click(sender As Object, e As EventArgs) Handles btn_Remove.Click
If IsNothing(Me.ListView1.FocusedItem) Then
MessageBox.Show("Please select an Item from the grocery list to be removed.")
ElseIf ListView1.SelectedItems.Count <= 0 Then
Me.ListView1.Items.RemoveAt(Me.ListView1.FocusedItem.Index)
' Need ListView1.FocusedItem to reset to "Nothing" here <<--------------------
Else
MessageBox.Show("There are no Items on the grocery list to be removed.")
End If
End Sub
您不能选择任何内容:
ListView1.SelectedItems.Clear()
正在将 "ListView1.FocusedItem.Focused" 设置为 "False" 似乎解决了我的问题。我添加了一个包含“ListView1.FocusedItem.Focused = False”的 if 语句。现在,当单击“删除”按钮并且没有在 ListView 中手动选择项目时,“Me.ListView1.FocusedItem“ 没什么。这是工作代码:
Private Sub btn_Remove_Click(sender As Object, e As EventArgs) Handles btn_Remove.Click
If IsNothing(Me.ListView1.FocusedItem) Then
MessageBox.Show("There are no Items selected to be removed from the grocery list.")
ElseIf ListView1.SelectedItems.Count >= 0 Then
Me.ListView1.Items.RemoveAt(Me.ListView1.FocusedItem.Index)
If ListView1.Items.Count > 0 Then
ListView1.FocusedItem.Focused = False
End If
Else
MessageBox.Show("An Error has halted thid process")
End If
End Sub