我有一个treeview
,它是从xmal文件中提取的节点集合。让他们如下:
-Rootnode
-dir
-choose
-obj
-nodecollections
-Node1
-node11
-node12
-node121
-node122
-Node2
-node21
-node211
-...
我正在做的是创建treenode
Node1
和Node2
等节点集合(忽略treeview
中的先前节点,只对最后一个孩子感兴趣)使用
TreeNodeCollection compare1 = treeView1.Nodes[0].LastNode.Nodes;
这意味着我现在拥有来自最后一个孩子nodecollections
的所有子节点。
接下来我正在检查其中一个孩子,例如:Node2
我将其所有子节点保存在新的Treenode
TreeNode action_compare1 = treeView1.Nodes[0].LastNode.Nodes[indx_tree1];
其中indx_tree1
是一个整数,我知道选择了哪个节点,然后我将保存节点。
我的目标是在保存所选节点(已完成)后删除所选节点的第一个节点,然后将它们保存在新节点中。例如,假设Node1
保存在名为First_node
的TreeNode中。然后我将从Node结构中删除Node1
并将所有子节点保存在一个新节点中(我不会在Treeview中显示),在这种情况下,我将以下保存的节点作为新节点First_node
:
-node11
-node12
-node121
-node122
但我不知道怎么办?
更新
好吧也许答案很清楚,但我不明白。然后假设我有他的节点:-Node1
-node11
-node12
-node121
-node122
现在我想在新节点中提取所有子节点。我该怎么办?
答案 0 :(得分:0)
根据我们在评论中的讨论,很明显,您需要对孩子的节点集合进行“深层复制”。
您可以通过调用给定节点的Clone()
方法来完成此操作。
这是 - 简而言之 - 你可以如何使用它:
TreeNode n=MyTreeView.Nodes[0];
var Node_and_SubNodes_of_given_Node = n.Clone();