progs.biz  
Начало>C#>Windows>Урок 16
C#
VB.NET
Visual C++.NET
Visual C++ 6
WinAPI
C++
Delphi
C++ Builder
Java
PHP
Visual Basic 6.0
DirectX
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Э. Троелсен. C# и платформа .NET.
Э. Троелсен. C# и платформа .NET.
Заказать на Озоне


SpyLOG
Яндекс-цитирования

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.

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

Нахождение узла в дереве
Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz
Label

 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь