删除选定节点会删除所有树节点吗?

Remove selected node removes all treenodes?

我 select 我想从树中删除一个节点。 当我 select 一个节点时,我的代码将它从树中删除。到目前为止,一切都很好。但是随后 selection 传递到下一个节点,所以我的代码也将其删除。并继续前进,直到所有节点都消失。 我尝试使用 .nodemouseclick 而不是 .afterselect 但这不起作用:如果我 select 一个节点然后另一个节点,它会删除第一个节点。

Private Sub tree_Selected_RemoveNode(sender As Object, e As TreeViewEventArgs) Handles tree_Selected.AfterSelect
    Dim ActiveNode As TreeNode
    ActiveNode = tree_Selected.SelectedNode
    If Not ActiveNode Is Nothing Then
               tree_Selected.Nodes.Remove(ActiveNode)
    End If
End Sub

有点不清楚您在此处尝试使用用户界面做什么,但是避免所有节点消失的一种方法是删除 AfterSelect 处理程序并在代码完成时将其重新添加:

Try
  RemoveHandler tree_Selected.AfterSelect, AddressOf tree_Selected_AfterSelect
  Dim ActiveNode As TreeNode
  ActiveNode = tree_Selected.SelectedNode
  If Not ActiveNode Is Nothing Then
    tree_Selected.Nodes.Remove(ActiveNode)
  End If
Catch ex As Exception
  MessageBox.Show(ex.ToString, "Error")
Finally
  AddHandler tree_Selected.AfterSelect, AddressOf tree_Selected_AfterSelect
End Try