C# для Windows Урок 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.
Запускаем программу. Если узел с искомым именем существует (а имя
надо вводить, естественно, во второе текстовое поле), то он выделится в
дереве:
|