Конференция на VBStreets - Преглед на тема - Работа с дефиниране на родителски възел и др

Модератори: Рамзес, Себас

Работа с TreeView Как да определите родителския възел и т.н.

Накратко, може да има произволен брой предприятия. Свойството Text на всички дъщерни възли е едно и също (т.е. невъзможно е еднозначно да се идентифицира дъщерен възел чрез това свойство). Свойството Tag за родителския възел (Enterprise) съдържа имената на таблиците в базата данни.

И така, да предположим, че имаме такава ситуация. Потребителят, разширил няколко клона Enterprise1, Enterprise6, Enterprise28, мисли какво би искал да види и след това щраква върху който и да е дъщерен възел.

А ето и въпросите:

Как, по дяволите, да се определи на кой родител принадлежи дъщерен възел, за да се разгледа съответно неговия таг и да се изпрати заявка към базата данни.

Как програмно да намерите/изберете конкретен възел (т.е. всеки възел има ли уникален идентификатор по отношение на целия контрол, независимо дали е родител или дете)?

P.S. Теоретично (макар и малко вероятно) може да възникне ситуация, когато имената на родителите (Предприятията) са еднакви, така че такава опция като вземане на пътя от дъщерния възел и изтегляне на името на родителя не е подходяща. В идеалния случай бих искал да имам уникален идентификатор за всеки възел в контролата. (още един въпрос)

Не питам за готов код, кажете ми поне в коя посока и колко дълго да копая

Поставете два елемента във формуляра: TreeView и TextBox Код: Избор на всички опции Изрично

Private Sub Form_Load()

.Nodes.Add , , "work1", "Work 1" .Nodes.Add "work1", tvwChild, "work1child1", "Shild 1" .Nodes.Add "work1", tvwChild, "work1child2", "Shild 2"

.Nodes.Add , , "work2", "Work 2" .Nodes.Add "work2", tvwChild, "work2child1", "Shild 1" .Nodes.Add "work2", tvwChild,"work2child2", "Щит 2"

.Nodes.Add , , "work3", "Work 3" .Nodes.Add "work3", tvwChild, "work3child1", "Shild 1" .Nodes.Add "work3", tvwChild, "work3child2", "Shild 2"

Private Sub TreeView1_NodeClick(ByVal възел като MSComctlLib.Node)

If (Not Node.Parent Is Nothing) Then Text1.Text = Node.Parent.Key

Стар бъг. Забравям да погледна заглавието на раздела. Дълго време предлагах да направя функция за филтриране на съобщения, но нещата все още са там.

А какво да кажем за други свойства в .NET за контроли със същото име?

Е, например, създаването на възел става така:

Dim newNode As TreeNode = New TreeNode("node1") TreeView1.SelectedNode.Nodes.Add(newNode)

без никакъв ключ. Това е проблема.

След като инсталирате MSDN и QuickStarts, стартирайте IIS и отидете тук.