Конференция на 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 и отидете тук.