Урок 16. TreeView - окончание

С прошлого урока нам осталось написать метод FindNode, который ищет узел с определенным названием, принадлежащий некоторому подузлу.

Вот текст этого метода:

// Поиск подузла в узле по названию.

private TreeNode FindNode(TreeNode treenode, string name)

{

// Ищем в узлах первого уровня.

foreach(TreeNode tn in treenode.Nodes)

{

// Если нашли,

if(tn.Text==name)

{

// то возвращаем.

return tn;

}

}

// Ищем в подузлах.

TreeNode node;

foreach(TreeNode tn in treenode.Nodes)

{

// Делаем поиск в узлах.

node = FindNode(tn, name);

// Если нашли,

if(node!=null)

{

// то возвращаем.

return node;

}

}

// Ничего не нашли.

return null;

}

Этот метод - рекурсивный. Т. е. он вызывает сам себя - и это логично - сначала нужный подузел ищется среди подузлов только первого уровня. Если не нашли, то рекурсивно вызываем этот же метод для поиска в каждом подузле нашего узла. Если и там ничего не нашли, то возврящем null.

Запускаем программу. Если узел с искомым именем существует (а имя надо вводить, естественно, во второе текстовое поле), то он выделится в дереве:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: