Отправляет email-рассылки с помощью сервиса Sendsay

Финансы. Инструкция

  Все выпуски  

Уроки по C# и .NET.


Информационный Канал Subscribe.Ru

Уроки по C#. Рассылки сайта progs.biz
Рассылка № 59
 
Начало > C# > Windows > Урок 19

Разработка Web-приложений на Visual Basic.NET и C#.NET.
Разработка Web-приложений на Visual Basic.NET и  C#.NET
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 19.

C# для Windows
Урок 19. TreeView для каталогов - продолжение

Продолжаем заниматься нашим деревом каталогов.

Вот код обещанного на прошлом уроке метода NodeExpand:

        // Раскрытие ветки дерева.
        private void NodeExpand(TreeNode tn)
        {
            // Если есть подузлы.
            if(tn.Nodes.Count!=0)
            {
                // Если раскрываем в первый раз.
                if(((string)tn.Tag)=="")
                {
                    // Удаляем фиктивный узел.
                    tn.Nodes.RemoveAt(0);
                    // Добавляем подузлы.
                    AddTreeNodes(tn);
                    // Устнавливаем признак того, что
                    // узел уже раскрывали и добавили в него все подузлы.
                    tn.Tag = "+";
                }
            }
        }

Тут мы опять делаем только часть работы (чтобы не запутаться) - а именно вызываем пока не написанный нами метод AddTreeNodes. Наш код достаточно прост - а именно мы раскрываем наш узел только если он не пуст (проверка условия tn.Nodes.Count!=0). Если он не пуст, то мы удаляем добавляемый при создании фиктивный узел (который служил только для того, чтобы показать знак "+" для непустых папок у нашего дерева) и добавляем реальные подузлы (напомним еще раз, что для этого нам еще предстоит написать метод AddTreeNodes). Далее мы устанавливаем для нашего узла признак того, что он уже раскрывался и что нам для него не надо будет добавлять узлы (т. е. записываем в свойство Tag значение "+").

Давайте на этом уроке напишем еще один вспомогательный метод - GetFullPath. Этот метод по узлу нашего дерева возвращает полный путь (т. е. от корневого узла (папки), до нашего узла (папки), включая все промежуточные узлы (папки)). Вот код метода GetFullPath:

        // Получение полного имени папки по узлу.
        private String GetFullPath(TreeNode tn)
        {
            // Устанавливаем текуший узел на переданный в параметре.
            TreeNode currNode = tn;
            // В полное имя пока записываем текст,
            // показываемый в текущем узле.
            String fullPath = currNode.Text;
            // Двигаемся к корню дерева.
            while(currNode.Parent!=null)
            {
                // Переходим на родительский узел.
                currNode = currNode.Parent;
                // К полному имени приписываем текст родитеского узла.
                fullPath= currNode.Text + @"\" + fullPath;
            }
            // Возвращаем полный путь.
            return fullPath + @"\";
        }

Принцип работы этого метода такой - берем родительский узел для нашего узла, приписываем его текст влева, потом берем родительский узел для родительского, берем узел для него и т. п., пока не окажемся в корневом узле (который соответствует диску в файловой системе).

Рассылки сайта progs.biz
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


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


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

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.csharplessons
Отписаться

В избранное