在下面的屏幕截图中,我有一个节点300-9885-00X
及其TreeNodeCollection(在红色方块中)。稍微低一点,我们再次找到300-9885-00X
,我想将之前找到的TreeNodeCollection插入到该节点中......
我有一个遍历AutoCAD / SolidEdge程序集的递归程序。它打开文档并打印程序集及其子项,等等(递归地)......
我们如何将现有TreeNodeCollection 插入 TreeNode ?
可知:
以下变量TreeNodes
包含我的集合。我必须循环遍历集合才能添加其文本吗?
答案 0 :(得分:0)
您无法向节点添加TreeNodeCollection
。您必须循环通过TreeNodeCollection
并单独添加节点,如下所示:
For j As Integer = 0 To TreeNodes.Count - 1
n.Nodes.Add(TreeNodes(j).Clone())
Next
注意我使用了.Clone()
。这是由于插入了现有节点。您不能这样做,您必须删除现有的或克隆它。在我的情况下,我不得不克隆它。
答案 1 :(得分:0)
// Get the '_NodesCollection' from the '_parentNode' TreeNode.
TreeNodeCollection _Nodes = _parentNode.FirstNode.Nodes;
// Create an array of 'TreeNodes'.
TreeNode[] Nodes = new TreeNode[_Nodes.Count];
// Copy the tree nodes to the 'Nodes' array.
_Nodes.CopyTo(Nodes, 0);
// Remove the First Node & Children from the ParentNode.
_parentNode.Nodes.Remove(_parentNode.FirstNode);
// Remove all the tree nodes from the '_parentNode' TreeView.
_parentNode.Nodes.Clear();
// Add the 'Nodes' Array to the '_parentNode' ParentNode.
_parentNode.Nodes.AddRange(Nodes);
// Add the Child Nodes to the TreeView Control
TvMap.Nodes.Add(_parentNode);