2016-02-05 4 views
0

У меня есть узел treeview, который я хотел бы расширить только один специальный узел. Я знаю, что, написав treeView1.ExpandAll(), он расширит все узлы и узлы. Но то, что я имею в виду что-то вроде этого:Расширение одного специального узла в treeview

enter image description here

Я попытался также корчась эту команду, но это не имеет никакого влияния на дереве (!):

TreeNode lastNode = treeView1.Nodes[0].Nodes[treeView1.Nodes.Count - 1]; 
lastNode.Expand(); 

ответ

0

Во-первых, убедитесь, что вы управляете правильным узлом. В вашем примере treeView1.Nodes.Count является 1 (корневой узел), так

TreeNode lastNode = treeView1.Nodes[0].Nodes[treeView1.Nodes.Count - 1]; 

переводит

TreeNode lastNode = treeView1.Nodes[0].Nodes[0]; 

который не ваше намерение.

«Действия» узел может быть получен с

TreeNode lastNode = treeView1.Nodes[0].LastNode; 

Во-вторых, вызов Expand не достаточно, если некоторые из родительских узлов не расширяется. Вам необходимо либо включить EnsureVisible вызов как этот

lastNode.Expand(); 
lastNode.EnsureVisible(); 

или вручную разверните узел и всех его родителей, как это (вы можете также сделать функцию)

for (var node = lastNode; node != null; node = node.Parent) 
    node.Expand(); 
+0

Большое спасибо. Я этого не заметил. это было умное упоминание. –

0

Это потому, что ваш последний узел является действительно последний в вашем дереве, возможно, - без текста под «Manipulieren (data)». Что вам нужно, это Find Метод коллекции узлов дерева.

treeview.Nodes.Find("KeyOfTheNode",includeChildren)

где includeChildren говорит метод, если он должен искать верхний уровень или только включает в себя подузлы.

НО: вам нужно добавить узлы с ключом! как это:

treeview.Nodes.Add("KeyOfTheNode", "TextOfTheNode")

и иметь в виду: Find(string key, bool searchAllChildren) возвращает массив TreeNodes.

+0

Спасибо за ваш ответ. Но я думаю, что 'TreeNode lastNode = treeView1.Nodes [0] .Nodes [treeView1.Nodes.Count - 1];' относится к «действиям», а не «Manipulieren (data)». правильно? –

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