2016-07-04 2 views
0

мне нужно добавить TreeView Node по пути, например:Добавить TreeView узел по пути

TreeView

И я пытаюсь добавить от кода:

public void AddParent(string path, string node) 
{ 
    TreeNode parentNode = treeView1.Nodes[path]; 
    if (parentNode != null) 
    { 
     parentNode.Nodes.Add(node); 
    } 
} 

Ex путь: NODE0 \ NODE1 \ Node2 Ex node: Тест

Но parentNode всегда возвращает null.

Кто-нибудь может мне помочь?

+0

Я не думаю, что treeView1.Nodes [путь] работает, как вы предполагаете. Это имя/ключ/любой из одного дочернего узла на узлах. Например. свойство treeview.Nodes на скриншоте имеет два дочерних узла с именем «Node0» и «Node3». Но treeview.Nodes ["Node0"] имеет один дочерний узел с именем «Node1». Чтобы попасть в «Node2», вы бы сделали что-то вроде этого: «var node2 = treeView1.Nodes [« Node0 »]. Узлы [« Node1 »]. Узлы [« Node2 »]; –

ответ

0

я решил мою проблему

сначала проверьте Узлов:

public void AddParent(string path, string node) 
{ 
    foreach (TreeNode tnode in treeView1.Nodes) 
    { 
     if (tnode.FullPath == path) 
     { 
      tnode.Nodes.Add(node); 
      break; 
     } 

     checkChildren(tnode, path, node); 
    } 

    treeView1.ExpandAll(); 
} 

После, проверьте детей:

public void checkChildren(TreeNode original, string path, string node) 
{ 
    foreach (TreeNode tnode in original.Nodes) 
    { 
     if (tnode.FullPath == path) 
     { 
      tnode.Nodes.Add(node); 
      break; 
     } 

     checkChildren(tnode, path, node); 
    } 
} 

Спасибо'S!

Смежные вопросы