删除所选节点会删除所有treenodes吗?

时间:2015-02-09 13:30:33

标签: vb.net treeview

我想在选择它时从树中删除一个节点。 当我选择一个节点时,我的代码会从树中删除它。到现在为止还挺好。但是然后选择传递到下一个节点,所以我的代码也删除了它。并继续前进,直到所有节点都消失。 我已经尝试使用.nodemouseclick而不是.afterselect但是这不能正常工作:如果我选择一个节点然后另一个节点,它将删除第一个节点。

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

1 个答案:

答案 0 :(得分:1)

有点不清楚你在这里尝试使用用户界面做什么,但是避免让所有节点消失的一种方法是删除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