Treeview

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Treeview

Сообщение kroskros » 07.06.2006 (Ср) 15:38

Вляпался...
Чей-то не продумано с этим делом в VS2005,
мне так кажется.... :shock:

Итак. начнем по порядку:
Затеял я отображать данные из БД на форме в виде этого самого
TreeView.
Данные в таблице выглядят пусть так (для примера):

col1 col2 col3 col4
1 11 аа 1а
1 11 0 1б
1 12 аа 1с
1 11 аб 2а
2 13 аа 3а
2 13 0 0

0 я изобразил NULL.

Собственно не важно что напихано в таблицу,
ясно, что неким образом упорядоченные данные,
которые хочется красиво отобразить древовидной структурой.
Собственно удалось мне разобрать эти данные по нодам,
очень некраивым на мой взгляд методом,
сперва проверяя через
MyTree.nodes.find наличие нужной родительской ноды.

ВОПРОС 1. кинте ссылочку, если у кого есть,
может есть более разумные подходы?

Ладно, так или иначе я создаю нужные ноды в нужных местах.
Беда вот в чем:
ЕСТЬ ЛИ способ обратиться к последней созданной на данный момент ноде???
объясню.
я нахожу нужное значение допустим:
myTree.selectednode = Mytree.nodes.find("aa",false)(0)
и создаю ей childNode
myTree.selectednode.Nodes.add("1c")
А теперь хочу к ЭТОЙ САМОЙ СОЗДАННОЙ ноде добавить toolTip.
а КАК к ней обратиться???
Приходится устанавливать SelectedNode ее значение.
( а это не просто, ибо нод с заданным именем несколько и надо обратиться именно к той, что принадлежит заданной ветке)
а уже обращаясь к selectedNode.toolTip задавать значение

Подскажите неразумному а?
Max

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 07.06.2006 (Ср) 15:42

Создавать обьект TreeNode перед добавлением, и добавлять уже его

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 07.06.2006 (Ср) 15:52

можно на уровне формы объявить ListDictionary и в него добавлять ноды по ключу
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 07.06.2006 (Ср) 17:24

Обрашение к созданному ноду
Код: Выделить всё
Dim Node As System.Windows.Forms.TreeNode = Me.TreeView1.SelectedNode.Nodes.Add("Text")
      Node.ToolTipText = "Node ToolTip Text"

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 07.06.2006 (Ср) 17:59

temur писал(а):Обрашение к созданному ноду
Код: Выделить всё
Dim Node As System.Windows.Forms.TreeNode = Me.TreeView1.SelectedNode.Nodes.Add("Text")
      Node.ToolTipText = "Node ToolTip Text"

тебе не каджется, что это то-же, что сказал я?

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 07.06.2006 (Ср) 19:51

Не ссортесь, горячие программеры!. ;))

спасибо. чего-то до создания ноды, а затем ее присоединения
я не допер...

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

А с ListDictionary сложно для меня...но я попробую разобраться и понять.
Max

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.06.2006 (Чт) 9:13

То что ты сказал это
Код: Выделить всё
Dim Node As New System.Windows.Forms.TreeNode
Node.Text = "Text"
Node.ToolTipText = "Node toolTip Text"
Me.TreeView1.SelectedNode.Nodes.Add(Node)

А по сути это почти одно и тоже

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 12.06.2006 (Пн) 18:10

позволяющий строить дерево "скормив" ему DataTable.

Как ты хочешь отобразить эти данные?
Объясни постараемся сделать

kroskros
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 176
Зарегистрирован: 01.08.2005 (Пн) 6:59

Сообщение kroskros » 12.06.2006 (Пн) 20:09

Ой...
Спасибо, конечно...
я просто ни кого не хотел напрягать в этом смысле... :wink:

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

Из базы данных выбирается некоторый набор данных - таблица, ессно.
Поля в ней такие:
Complex; - номер комплекса (места) проведения работ
(обязательное поле)
Work; - Номер работы по данному комплексу
(обязательное поле)
Object; - Объект (часть) оборудования комплекса, на котором
проводится данная работа.
(может присутствовать, а может и нет...)
Mark; - Вид работ в рамках данной работы
(тоже не обязательное поле)
Name - Наименование работы по договору
(обязательное поле)

Вот ихотелось построить дерево -
Ноды -1 уровня - Комплекс
ноды - 2 уровня - работы по компл
далее сложнее,
если ОБЪЕКТ есть, то ноды 3-уровня - Объекты
если Объектов нет то ноды 3 ур - Марки
Если есть и О бъет и Марка,
то Объект - 3 ур, а марка - 4 ур..
Ну и последний уровень - название работ.

Объект - уникальный номер, а в рамках одного объекта может быть несколько WORK в рамках одной Work - несколько объектов и/или марок... и так далее...

Просто хотелось бы чтобы был универсальный класс,
наследованный от TreeView чтоли...
чтобы при создании экземпляра класса, можно было указать чего-нить типа:
MyTree.New(MyTable)
и вернулось готовое дерево..

Еще раз спасибо.
я
Max

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 16.06.2006 (Пт) 14:48

Вот такой контрол пойдет?
Там есть редактор структурыб многое надо доработать но я думаю ты разберешся
Вложения
TreeViewSample.rar
(481.47 Кб) Скачиваний: 83


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList