Тема: TreeView
Доброго времени суток.
Подскажите пожалуйста. Как в VBA создать видовое дерево. Возможно ли это?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → TreeView
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Доброго времени суток.
Подскажите пожалуйста. Как в VBA создать видовое дерево. Возможно ли это?
> Maxim
Я не понимаю что значит видовое
Если ты имеешь в виду отображение иконок
в узлах древа, попробуй такой метод
(измени пути для иконок)
Private Sub UserForm_Initialize() Dim iml As ImageList Set iml = New ImageList iml.ListImages.Add , "closed", LoadPicture("C:\MyVBA\FolderClosed.bmp") iml.ListImages.Add , "open", LoadPicture("C:\MyVBA\FolderOpen.bmp") ' тут добавь картинок сколько тебе нужно Set tvPics.ImageList = iml tvPics.Nodes.Clear tvPics.Nodes.Add , , "A1", "Root Folder", "closed" tvPics.Nodes.Add "A1", tvwChild, "b1", "SubFolder1-0", "closed" tvPics.Nodes.Add "b1", tvwChild, "c1", "SubFolder2-0", "open" tvPics.Nodes.Add "A1", tvwChild, "b2", "SubFolder1-1", "closed" tvPics.Nodes.Add "b2", tvwChild, "c2", "SubFolder2-2", "open" tvPics.Nodes.Add "A1", tvwChild, "b3", "SubFolder1-3", "closed" tvPics.Nodes.Add "b3", tvwChild, "c3", "SubFolder2-3", "open" tvPics.Nodes.Add "A1", tvwChild, "b4", "SubFolder1-4", "closed" tvPics.Nodes.Add "b4", tvwChild, "c4", "SubFolder2-4", "open" End Sub
~'J'~
Если добавить форму и вкликнуть правой кнопкой на ToolBox то я могу подключить элемент CTreeView. Но я не пойму как с ним работать. Где хоть справку по нему достать. Просто я хочу организовать вставку блоков в виде "дерева".
Попробовал способ fixo, добавил на форму управляющий элемент ImageList. При запуске ошибка object required.
> Maxim
Не надо добавлять на форму никакой ImageList -
если бы посмотрел внимательно, то увидел бы что он
создается програмно при инициализации формы
Переименуй TreeView1 на tvPics как у меня
в коде и все будет работать
~'J'~
Чтобы TreeView нормально у всех работал надо в references подключить Microsoft Windows Common Controls 5.0(SP2), затем в тулбокс добавить TreeView и перетянуть его на форму.
У этого элемента управления есть один основной объект Nodes(узлы) методы которого могут добавлять, фильтровать, удалять, добавлять иконки и т.д Метод add добавляет узел, у него четыре параметра, первые два не обязательные, третий KEY-обязательный и уникальный, последний Name-обязательный может повторятся. Примерно так:
Dim TW as TreeView
KEY=array("Иванов","Петров")
NAME=array("Иван","Петя")
TW = TreeView1.Nodes.Add(, , KEY(0), KEY(0))
TW = TreeView1.Nodes.Add(KEY(0),tvwChild,"A", NEME(0))
TW = TreeView1.Nodes.Add(, , KEY(1), KEY(1))
TW = TreeView1.Nodes.Add(KEY(1),tvwChild,"B", NEME(1))
Результат:
Иванов
-Иван
Петров
-Петя
А как дальше сам поймешь.
Если первые два параметра у метода Add опущены, то создается основной узел(родительский). Если первый параметр - KEY какого либо основного узла, второй -tvwChild, третий- новый уникальный KEY, четвертый NAME, то появится дочерний узел к овноному узлу по ключу первого параметра.Вот.
Подскажите пожалуйста как сделать так, чтобы в treeview все nodes располагались иерархично?
2igor
внимательно читай http://www.xserver.ru/computer/sredaprogr/msvb/21/
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → TreeView
Форум работает на PunBB, при поддержке Informer Technologies, Inc