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

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

  Все выпуски  

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


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

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

М. Макдональд. Рецепты программирования на Visual Basic.NET.
М. Макдональд. Рецепты программирования на Visual Basic.NET.
Заказать на Озоне

Подробнее


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

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

Осталось для нашего дерева папок, начатаго на уроке 18, добавить метод AddTreeNodes для добавления подузлов. Вот его код (этот метод добавляем естественно, в класс формы):

        // Добавление подузлов.
        private void AddTreeNodes(TreeNode tn)
        {
            TreeNode aux;
            // Получаем полный путь для папки узла.
            DirectoryInfo d = new DirectoryInfo(GetFullPath(tn));
            // Массив для хранения подпапок.
            DirectoryInfo[] ds;
            try 
            {
                // Получаем все подпапки для папки.
                ds = d.GetDirectories();
                
                // Для каждой папки выводим ее имя и имена всех подпапок.
                foreach (DirectoryInfo s in ds)
                {
                    // Добавляем каждую подпапку.
                    aux = tn.Nodes.Add(s.Name);
                    // Устанавливаем для нее признак, что ее еще не раскрывали.
                    aux.Tag = "";
                    try 
                    {
                        // Если она не пуста,
                        if(s.GetDirectories().GetLength(0)!=0)
                        {
                            //  то добавляем в нее фиктивный узел.
                            aux.Nodes.Add("");
                        }
                    }
                    // Перехватываем исключение запрещенного доступа.
                    catch (UnauthorizedAccessException)
                    {
                    };

                }
            }
            //Перехват общего исключения (например, если диск a: не вставлен).
            catch(Exception)
            {
            }
        }

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

Все. Можно запускать программу.

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

Рассылки сайта 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
Отписаться

В избранное