Вставить существующую коллекцию TreeNodeCollection в TreeNode

Проблема:

На скриншоте ниже у меня есть узел 300-9885-00X вместе с его TreeNodeCollection (в красном квадрате). Чуть ниже мы снова находим 300-9885-00X, я хочу вставить TreeNodeCollection, который мы нашли ранее, в этот узел...

Узлы TreeView


Исходная информация

У меня есть рекурсивная программа, которая проходит через сборки AutoCAD/SolidEdge. Он открывает документы и печатает сборки, их дочерние элементы и т. д. (рекурсивно)...

  • Зеленый цвет означает, что он напечатан
  • Оранжевый означает, что он уже был напечатан ранее, поэтому нам не нужно печатать его снова...

Вопрос:

Как вставить существующую коллекцию TreeNodeCollection в TreeNode?

Знание:

  1. Расположение TreeNodeCollection
  2. Расположение узла, в который я хочу вставить коллекцию, в

Следующая переменная TreeNodes содержит мою коллекцию. Должен ли я перебирать коллекцию, чтобы добавить ее текст? TreeCollectionAdd Error


person Alex    schedule 10.05.2013    source источник


Ответы (1)


Вы не можете добавить TreeNodeCollection в Node. Вы должны пройтись по TreeNodeCollection и добавить узлы по отдельности следующим образом:

For j As Integer = 0 To TreeNodes.Count - 1
    n.Nodes.Add(TreeNodes(j).Clone())
Next

Обратите внимание, что я использовал .Clone(). Это связано с вставкой уже существующего узла. Вы не можете этого сделать, вы должны либо удалить существующий, либо клонировать его. В моем случае мне пришлось клонировать его.

person Alex    schedule 10.05.2013