Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Изменения в исходном тексте программы

Подключение списка изображений к дереву

Создав и заполнив список изображений, подключите его к дереву просмотра дисков и каталогов. Для этого отредактируйте свойство ImageList элемента управления treeView1, присвоив ему ссылку на список изображений imageList1 (рис. 14).

Рис. 14. Подключили список изображений к дереву

Теперь для отображения значков в узлах дерева нам необходимо изменить исходный текст методов DriveTreeInit и GetDirs. Напомним, что первый из этих методов инициализирует дерево, а второй — добавляет к узлу дерева список каталогов.

Обратите внимание на конструктор класса TreeNode, создающий узлы дерева внутри тела цикла foreach:

public void DriveTreeInit()
{
string[] drivesArray = Directory.GetLogicalDrives();
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
foreach(string s in drivesArray)
{
TreeNode drive = new TreeNode(s, 0, 0);
treeView1.Nodes.Add(drive);
GetDirs(drive);
}
treeView1.EndUpdate();
}

Этот конструктор имеет три параметра. Про первый параметр мы уже рассказывали — он задает текст надписи для узла дерева. Теперь настало время рассказать и про два остальных параметра.

Если к элементу управления TreeView подключен список изображений, то второй и третий параметры конструктора класса TreeNode задают индексы изображений для узла дерева. При этом второй параметр определяет изображение невыделенного узла дерева, а третий — выделенного.

Что касается метода DriveTreeInit, то расположенный в нем конструктор создает узлы, отображающий только дисковые устройства. В любом состоянии (как выделенном, так и невыделенном) нам необходимо отображать один и тот же значок дискового устройства, имеющий в нашем случае индекс 0. Поэтому второй и третий параметры конструктора передают нулевые значения.

Другое дело — метод GetDirs:

public void GetDirs(TreeNode node)
{
DirectoryInfo[] diArray;
node.Nodes.Clear();
string fullPath = node.FullPath;
DirectoryInfo di = new DirectoryInfo(fullPath);

try
{
diArray = di.GetDirectories();
}
catch
{
return;
}
foreach (DirectoryInfo dirinfo in diArray)
{
TreeNode dir = new TreeNode(dirinfo.Name, 1, 2);
node.Nodes.Add(dir);
}
}

Здесь конструктору класса TreeNode, размещенному внутри оператора цикла foreach, через второй и третий параметры мы передаем индексы значков закрытой и открытой папки, соответственно. В результате при отображении дерева папки, которые выделил пользователь, выделяются своим обозначением (рис. 15).

Рис. 15. Дерево со значками дисковых устройств и папок

Что же касается дисковых устройств, то все они отображаются одним и тем же значком.

К сожалению, среди многочисленных классов библиотеки Microsoft.NET Framework нам не удалось найти ни одного, позволяющего получить физические параметры дисковых устройств. Поэтому мы не смогли использовать отдельные значки для НГМД, сменных устройств памяти и устройств CD-ROM.

Тем не менее, средства Microsoft.NET Framework позволяют программам C# обращаться к программному интерфейсу OC Win32 API, поэтому после соответствующей доработки приложения можно будет использовать разные значки для изображения устройств внешней памяти разного типа.

<== предыдущая лекция | следующая лекция ==>
Создание списка изображений | Редактирование текста узлов дерева
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.