【发布时间】:2016-02-12 07:59:02
【问题描述】:
我有一个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
现在我想在一个新节点中提取它的所有子节点。我该怎么做?
【问题讨论】:
-
我必须承认我不明白这个想法...可能是XY Problem...“如何做”问题往往会产生误导...请描述你想要什么没有你的实际代码实现,或者请描述一个真正的问题(带有错误消息,代码示例......)
-
@Shnugo 请看修改后的最后一段
-
“保存”是什么意思? Nodes 集合将显示您放在那里的任何内容……每个 Node 都有自己的 Nodes 集合。树视图需要一个第一个节点。因此,您可以实例化一个新节点并用您要显示的节点填充它的 Nodes 集合...
-
如果您不想显示任何内容,只需在您的情况下使用 Node1 的 Nodes 集合即可……如果没有,我仍然不明白您的问题……
-
您的更新:您想按原样使用给定节点(在本例中:只使用它们),还是使用它们的副本(深度克隆)?
标签: c# .net winforms treeview treenode