Ik heb een probleempje met een treeview (jaja, alweer
).
Het probleem is als volgt:
Nu is het mogelijk dat de gebruiker een node kan aanklikken, dan dan een actie daarop uitvoeren (verwijderen van een node, of aanmaken van een nieuwe node). Echter omdat alle items in de database staan komen er bij mij ook database functies in voor. Ook maak ik gebruik van sorteringen, en daar is met name waar dit probleem over gaat.
Nu is het sorteren (en het maken van een sorteer string) geen probleem maar wel het volgende:
Ik probeer bij welke subnode je ook zit de node onder de rootnode te achterhalen
Normaal gesproken kan dit met Node.Parent.Text. Wat ik dus ook doe, is dat ik die items (Producten, Diensten etc) heb ik in een collection staan. Dus daar is de boel mee te vergelijken.
Ik dacht van ik maak een recusieve functie om iig alle items eens in een collection/arraylist te zetten zodat ik kan zien hoe het werkt. .... Maar, waar kwam ik achter is dat hij maar 1 laagje diep gaat, en dat is dus niet de bedoeling.
Ik heb het geprobeerd met de volgende code:
PS: let ff niet op de belachelijke namen, gaat dus puur ff om te testen.
Maar ik kom er dus niet uit, kan een van jullie me op weg helpen ?
Het probleem is als volgt:
code:
1
2
3
4
5
6
| (rootnode) Bestandsoverzicht
\ Producten
\ Multivers lijn
\ Multivers Lite
\ Multivers Extended
\ Diensten |
Nu is het mogelijk dat de gebruiker een node kan aanklikken, dan dan een actie daarop uitvoeren (verwijderen van een node, of aanmaken van een nieuwe node). Echter omdat alle items in de database staan komen er bij mij ook database functies in voor. Ook maak ik gebruik van sorteringen, en daar is met name waar dit probleem over gaat.
Nu is het sorteren (en het maken van een sorteer string) geen probleem maar wel het volgende:
Ik probeer bij welke subnode je ook zit de node onder de rootnode te achterhalen
Normaal gesproken kan dit met Node.Parent.Text. Wat ik dus ook doe, is dat ik die items (Producten, Diensten etc) heb ik in een collection staan. Dus daar is de boel mee te vergelijken.
Ik dacht van ik maak een recusieve functie om iig alle items eens in een collection/arraylist te zetten zodat ik kan zien hoe het werkt. .... Maar, waar kwam ik achter is dat hij maar 1 laagje diep gaat, en dat is dus niet de bedoeling.
Ik heb het geprobeerd met de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Sub GetValuesTest(ByVal N As TreeNode, ByRef V As ArrayList)
'V.Add(N.Text)
' V.Add(N.Parent.Text)
Dim i, intNodeCount As Integer
intNodeCount = N.Nodes.Count
For i = 0 To intNodeCount Step 1
V.Add(N.Parent.Text)
For Each tn As TreeNode In N.Nodes
GetValuesTest(tn, V)
Next
Next i
End Sub
Sub ikwordaangesproken()
Dim Arraylisttest As New ArrayList
GetValuesTest(tvCBbestandsoverzicht.SelectedNode, Arraylisttest)
End sub |
PS: let ff niet op de belachelijke namen, gaat dus puur ff om te testen.
Maar ik kom er dus niet uit, kan een van jullie me op weg helpen ?
[ Voor 2% gewijzigd door Verwijderd op 01-11-2004 10:28 . Reden: Layout Fix0r ]