Hej! Svarar mig själv eftersom jag löste det på omvägar.Identifiera TreeNode i en Treeview mha dess Key?
Jag sitter och försöker pula till en (i min värld) rätt enkel grej i VB.Net (Visual Studio 2005) men jag går bet på att jag inte lyckas manipulera en Treenodes Key..
Om man kollar på metoden .Add hos min TreeView.Nodes så ska det enligt intellisensen gå att göra en
TreeView.Nodes.Add(Key as string, Text as string) vilket jag gör i koden nedan.
Det fungerar jättebra, eller rättare sagt det genererar inga fel eller undantag.
Men, om man sedan försöker hitta en nods index genom att ange dess Key mha
TreeView.Nodes.IndexOfKey("C:4.1") så returnerar den -1 fast jag vet att jag stoppat in just denna Key när jag skapade en av noderna..
Går man ett steg längre så finns det ingen .Key hos en TreeNode.. Vad tusan är det jag missar?
Exempelkod:
Public Sub FillTree(ByRef theTree As TreeView)
Dim n As Integer = 0
Dim m As Integer = 0
Dim tvRoot As TreeNode
Dim tvNode As TreeNode
Dim strKey As String = ""
theTree.Nodes.Clear()
n = lCustomers.Length - 1
Debug.WriteLine("User: Filling Tree with: " & n & " customers")
For m = 1 To n
strKey = "C:" & lCustomers(m).ID & "."
tvRoot = theTree.Nodes.Add(strKey, lCustomers(m).Name & " - Inkorg")
Debug.WriteLine("User: tvRoot.Key: " & tvRoot.Name)
tvRoot.Tag = strKey
strKey = "C:" & lCustomers(m).ID & ".1"
tvNode = tvRoot.Nodes.Add(strKey, "- Idag")
tvNode.Tag = strKey
Debug.WriteLine("Key: " & strKey)
Next
Debug.WriteLine("User: Treeview indexof c4.1: " & theTree.Nodes.IndexOfKey("C:4.1"))
' Ovanstående returnerar -1 alltså att den inte hittar noden med denna key..
tvRoot = Nothing
tvNode = Nothing
End SubSv: Identifiera TreeNode i en Treeview mha dess Key?
Eftersom det helt klart är något som inte stämmer med .Key (den finns på nåt ställe men inte på andra.) så gick jag runt det hela genom att skriva några egna funktioner och nyttja .Tag istället.
/Magnus