Teeview carica nodi

mercoledì 25 aprile 2012 - 19.55
Tag Elenco Tags  VB.NET  |  .NET 4.0

massimo1965 Profilo | Junior Member

Ciao
a tutti, trovo un certo imbarazzo nella richiesta ma non ne vengo fuori....
Dovrei caricare un treeview seguendo questa logica :
ho un certo numero di chiavi a, a1, a11, a110, b, b1, b12 ...
i nodi figli si agganciano al padre in base a questa regola : key.substring(0,key.length-1)
in pratica il nodo padre a come chiave un carattere in meno del nodo figlio.

Da quello che ho capito ogni nodo a a sua volta dei sotto nodi, ma non riesco a capire come selezionare il nodo che mi
serve, ad esempio a11, e aggiungergli gli altri nodi...

Chi mi da una mano ?
Grazie

forse ho trovato, ma vorrei essere sicuro che la strada sia quella giusta...
anche perchè mi sembra "nu poco incasinato..."
Allora mi sono creato una function ricorsiva

Private Sub FindNodes(ByVal nodeCol As TreeNodeCollection, ByVal KeyNode As String)

Dim tn As TreeNode
Dim Base As String = KeyNode.Substring(0, KeyNode.Length - 1)
For Each tn In nodeCol
If tn.Tag = Base Then
tn.Nodes.Add(KeyNode, KeyNode)
tn.Nodes.Item(KeyNode).Tag = KeyNode
Exit Sub
End If
FindNodes(tn.Nodes, KeyNode)
Next

End Sub

freeteo Profilo | Guru

Ciao massimo1965,
sì il tuo procedimento è corretto, usare la funzione ricorsiva è la strada corretta per andare a "spazzolare" tutti i nodi, chiaramente ti ci vuole un punto d'uscita, ossia la verifica che il nodo che stai esplorando sia quello che cerchi.
In quel caso lo selezioni ed esci...direi che l'approccio è corretto, ma ti funziona?

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

massimo1965 Profilo | Junior Member

si
funziona solo che abituato a vb6 mi sembrava un po' strana
ma adesso che ci sto giocando non mi sembra più così strana...

grazie

freeteo Profilo | Guru

>si, funziona solo che abituato a vb6 mi sembrava un po' strana
in che senso strana, intendi la ricorsione?
Sembra in effetti che vada in loop infinito (e se non stai attento succede effettivamente, ma il runtime te lo dice cmq...) ma di fatto è una struttura molto potente.
Anni fa avevo fatto anche un piccolo post a riguardo: http://www.dotnethell.it/articles/FunzioniRicorsive.aspx


>ma adesso che ci sto giocando non mi sembra più così strana...
eh sì, sono cose interessanti


>grazie
di niente, grazie a te!

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5