На самом деле ваш код должен работать - для добавления подузла вам просто нужно сделать:
myNode.Nodes.Add(new TreeNode("Sub node"));
Возможно, проблема в том, как вы ссылаетесь на существующие узлы.Я предполагаю, что tree.Nodes [item.Name] вернул null?
Чтобы этот индексатор мог найти узел, вам нужно указать ключ при добавлении узла.Вы указали имя узла в качестве ключа?Например, следующий код работает для меня:
treeView1.Nodes.Add("key", "root");
treeView1.Nodes["key"].Nodes.Add(new TreeNode("Sub node"));
Если мой ответ не работает, вы можете добавить больше информации о том, что происходит?Вы получили какое-то исключение или просто ничего не произошло?
PS: чтобы сохранить объект в узле, вместо использования свойства Tag вы также можете извлечь свой собственный класс из TreeNode и сохранить в нем что-либо,Если вы разрабатываете библиотеку, это более полезно, потому что вы оставляете свойство Tag для использования пользователями.
Ran