КАТЕГОРИИ: Архитектура-(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) |
Обработчик события AfterSelect
Алгоритм наполнения списка Наполнение списка ListView В общем случае список ListView содержит элементы, каждый из которых имеет дополнительные элементы более низкого уровня, которые мы будем называть атрибутами. Сам элемент представляется текстовой строкой (и, возможно, значком) в первом столбце списка, отображаемого в виде детализированной таблицы. Значения остальных атрибутов отображаются в остальных столбцах таблицы (можно также создавать неотображаемые атрибуты элементов списка, содержащие произвольные данные). Алгоритм наполнения списка достаточно прост. Прежде всего, необходимо очистить список от предыдущего содержимого, т.к. наполнение одного и того же списка может происходить неоднократно. Эта операция выполняется с помощью метода Clear свойства Items списка: listView1.Items.Clear(); Далее для добавления элемента в список нужно создать новый элемент как объект класса ListViewItem: ListViewItem lvi = new ListViewItem("myfile.txt"); В качестве параметра конструктору передается текстовая строка имени файла. Она отображается в первом столбце детализированной таблицы. Далее нужно добавить атрибуты элемента. Данная операция выполняется с помощью метода SubItems.Add: lvi.SubItems.Add("1024"); Здесь мы добавляем к элементу два атрибута, первый из которых представляет собой размер файла, а второй — дату его создания. Если к элементу управления ListView добавлены списки изображений значков, то при создании элемента списка необходимо указать индекс нужного значка. Это делается с помощью свойства ImageIndex: lvi.ImageIndex = 4; После того как все атрибуты элемента определены, Вы можете добавить элемент в список при помощи метода Add: listView1.Items.Add(lvi); В нашем приложении FramesApp наполнение списка будет происходить в цикле. Теперь нашей задачей будет наполнить функциональностью список ListView. Когда пользователь выделяет диск или каталог в дереве просмотра TreeView, создается событиеAfterSelect. Обработчик этого события должен определить, какой диск или какой каталог был выделен, а затем наполнить окно списка ListView именами каталогов и файлов, расположенных на этом диске или в этом каталоге. Создайте обработчик события AfterSelect в таком виде, как это показано ниже: private void treeView1_OnAfterSelect(object sender, DirectoryInfo di = new DirectoryInfo(fullPath); try listView1.Items.Clear(); foreach(DirectoryInfo dirInfo in diArray) listView1.Items.Add(lvi);
switch (filenameExtension) listView1.Items.Add(lvi); Расскажем о том, как работает этот обработчик событий. Прежде всего, метод извлекает ссылку на узел дерева, выделенный пользователем, из свойства Node параметра обработчика событий treeView1_OnAfterSelect. TreeNode selectedNode = e.Node; Далее, полный путь к выделенному узлу записывается в поле fullPath класса string (Вам необходимо создать такое поле в классе Form1): fullPath = selectedNode.FullPath; Так как наше дерево содержит только обозначения дисков и каталогов, то это будет путь либо к корневому каталогу диска, либо к одному из подкаталогов. Далее мы создаем объект класса DirectoryInfo и получаем списки всех файлов и каталогов, располагающихся в каталоге, выделенном пользователем в дереве: DirectoryInfo di = new DirectoryInfo(fullPath); try Для выполнения этих операций применяются методы GetFiles и GetDirectories. Перечень файлов обработчик события сохраняет в массиве fiArray, а перечень каталогов — в массивеdiArray. Вооружившись перечнями файлов и каталогов, мы приступим к добавлению элементов к нашему списку ListView, очистив предварительно содержимое списка методом Clear: listView1.Items.Clear(); Наполнение списка именами каталогов выполняется в цикле foreach: foreach(DirectoryInfo dirInfo in diArray) listView1.Items.Add(lvi); Все выполняемые здесь действия были описаны ранее. С помощью конструктора классаListViewItem мы создаем элемент списка, а затем задаем значения атрибутов этого элемента. Длина каталогов считается равной нулю, а время последнего изменения каталога извлекается при помощи метода LastWriteTime и преобразуется в текстовую строку методом ToString. В свойство lvi.ImageIndex записывается нулевое значение — индекс значка в списке изображений imageList2 с изображением закрытой папки. После заполнения всех атрибутов элемента списка этот элемент добавляется в список методом listView1.Items.Add. На следующем этапе в список добавляются имена файлов, расположенных в выделенном каталоге. Эти имена тоже добавляются в цикле foreach(FileInfo fileInfo in fiArray) switch (filenameExtension) listView1.Items.Add(lvi); Размер очередного файла мы получаем с помощью свойства Length, а дату последнего изменения — с помощью свойства LastWriteTime (как и для каталогов). Что же касается значков, то тут алгоритм немного сложнее. Нам нужно определить тип текущего файла, проанализировав расширение его имени, а затем выбрать и записать в свойство lvi.ImageIndex индекс соответствующего значка. Расширение имени файла извлекается из полного имени методом Path.GetExtension, а затем все его буквы преобразуется в прописные методом ToLower. Непосредственный выбор значка выполняется при помощи оператора switch. Подготовленный элемент списка, описывающий текущий файл, добавляется в список методом listView1.Items.Add.
Дата добавления: 2014-01-20; Просмотров: 550; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |