Читайте также:
|
|
Цель лекции: знакомство с правилами работы с компонентами TreeView, ListView.
План лекции: Компонент TreeView: свойства, события, методы. Принципы создания программ с использованием компонента TreeView. Компонент ListView: свойства, события, методы. Принципы создания программ с использованием компонента ListView.
Ключевые слова: компонент ListView, компонент TreeView.
Если вы хотите увидеть одно из применений ListView и TreeView, то откройте Проводник Windows (см. Ошибка! Источник ссылки не найден.). Левая панель проводника это TreeView, а правая - ListView. Элемент TreeView приспособлен для отображения любых древовидных структур, не обязательно структуры папок на диске. Например, вы можете отобразить собственное генеалогическое древо. Элемент ListView приспособлен для удобного отображения списков, включая пиктограммы (значки, иконки) элементов списка. Списки могут отображаться и в табличном виде, подобно таблицам баз данных.
Использование командных кнопок для доступа к данным является самым простым способом, который хорошо работает при небольшом количестве записей. Если записей много, то перемещение с помощью кнопок является неэффективным. Рассмотрим ВУЗ с 10 факультетми, на каждом из которых имеется по 4-5 специальностей, 4 курса обучения и 2 языка обучения. Для того, чтобы найти экзаменационную ведомость по како-либо дисциплине определенной группы придется просмотреть несколько десятков тысяч записей. Для таких задач можно вместо навигации с помощью командных кнопок использовать дерево TreeView.
Элемент управления TreeView предназначен для отображения в компактном виде данных древовидной структуры. Этот элемент управления часто используется для представления оглавления книг, иерархической структуры базы данных, каталогов данных на жестком диске компьютера и т. д. Например, он может отражать оглавление книги "Справочник Web-мастера" издательства BHV.
Основной единицей этого элемента управления ActiveX является узел, который в самом общем случае состоит из изображения и метки. Изображения для узлов поставляются элементом управления ImageList, ассоциированным с элементом управления TreeView. Например, самый первый узел нсостоит из изображения раскрытой книги и метки, задающей отображаемый текст этого узла ("Справочник Web-мастера").
Узлы в дереве могут содержать подчиненные узлы. В этом случае их можно раскрыть, показав все подчиненные узлы, или свернуть. Такие узлы отображаются с расположенным слева от изображения небольшим квадратиком (его еще называют флажком), в котором располагается знак + (плюс), если узел свернут, и знак — (минус), если узел раскрыт. Для свернутого или раскрытого узла можно использовать разные изображения. Двойной щелчок на узле или одинарный щелчок на квадратике раскрывает или сворачивает узел с подчиненными узлами.
Если структура дерева при раскрытии узлов не помещается в области отображения элемента управления, то автоматически добавляются вертикальная и горизонтальная полосы прокрутки. Если надпись в узле полностью не помещается в пространстве отображения элемента управления, то при расположении курсора мыши над таким узлом появляется всплывающая подсказка, в которой отображается весь текст, содержащийся в метке узла.
Каждый узел реализован в виде программируемого объекта Node (Узел). Эти объекты хранятся в наборе Nodes элемента управления TreeView. Свойство index узла позволяет определить его индекс в наборе Nodes. Узлы помещаются в этот набор в соответствии с порядком их задания в программе.
Каждый узел может быть либо только родителем других узлов (тогда он является началом дерева и называется корневым узлом), либо только порожденным узлом (тогда он завершает ветвь дерева), либо и родителем, и порожденным узлом одновременно (тогда он расположен в точке ветвления дерева). Корневых узлов может быть несколько. Они не связаны между собой никакими "родственными" связями, и порождают, каждый в отдельности, самостоятельные деревья иерархической структуры. Любое дерево может иметь только один корневой элемент.
Для определения "родства" узлов объект Node имеет набор свойств, позволяющих определить родителя (свойство Parent), первый порожденный узел (свойство child), количество порожденных узлов (свойство children) и корневой узел (свойство Root).
Узлы, непосредственно порождаемые каким-либо узлом, являются узлами-"братьями", или узлами одного уровня. Ряд свойств позволяет обрабатывать подобные "родственные" связи: Firstsibiing возвращает ссылку на первый узел из множества узлов одного уровня, Lastsibiing — на последний узел из этого множества, Next определяет следующего брата, a Previous — предыдущего.
Перечисленные свойства объекта Node позволяют полностью определить структуру данных, отображаемую элементом управления TreeView, и организовать перемещение по ее узлам и ветвям.
Но как создать узлы, как определить, какой узел порождает другой, как задать корневой узел дерева? Для этого предназначен метод Add набора Nodes, имеющий следующий синтаксис:
объектТгееView.Nodes.Add узел, отнош, ключ, текст, изобр, выбр_изобр
Первый параметр узел этого метода определяет объект Node, относительно которого создается новый узел элемента управления TreeView с заданным параметром отнош "родственным" отношением. Параметр узел задает либо индекс, либо уникальный ключ существующего объекта Node (см. ниже). Параметр отнош может быть целым числом от 0 до 4. Описание всех значений этого параметра и определяемых ими отношений представлено в табл. 1.
Таблица 1. Родственные отношения узлов в методе Add
Значение параметра отношения | Описание |
Новый узел создается перед всеми узлами того же уровня, что и узел, определяемый параметром узел | |
Новый узел создается после всех узлов того же уровня, что и узел, определяемый параметром узел | |
Новый узел создается непосредственно после узла, определяемого параметром узел | |
Новый узел создается непосредственно перед узлом, определяемым параметром узел | |
Новый узел создается как узел, порождаемый узлом, который определен параметром узел |
Дата добавления: 2015-07-11; просмотров: 312 | Нарушение авторских прав