将 Treeview 分支移动到新节点

Move Treeview branch to new node

我有一个树视图结构如下。

A1

___A2

___B2

______A3

______B3

___C2

___D2

我想移动节点 B2 及其所有子节点,使其成为节点 D2 的子节点。

我在论坛上找到解决方案,指出您只是将 B2 的父级设置为 D2,但在 VS 2010 中,父级是只读的。

是否有一个简单的指令可以执行此操作,还是我必须将节点复制到 D2 中,然后将所有子节点复制到新的 B2 中,然后删除 B2?目前这似乎需要相当长的时间,因为分支上有相当多的节点要移动,所以我希望有一个即时方法。

谢谢。

假设是WinForms,你要找到你正在处理的节点,然后移除你要移动的分支,然后将它添加到另一个分支:

Dim nodeB2 As TreeNode = TreeView1.Nodes.Find("nodeB2", True).FirstOrDefault
If nodeB2 IsNot Nothing Then
  Dim nodeD2 As TreeNode = TreeView1.Nodes.Find("nodeD2", True).FirstOrDefault
  If nodeD2 IsNot Nothing Then
    nodeB2.Parent.Nodes.Remove(nodeB2)
    nodeD2.Nodes.Add(nodeB2)
  End If
End If