Trova un Nodo nel controllo Treeview

di il
2 risposte

Trova un Nodo nel controllo Treeview

Salve a tutti, non riesco a trovare documentazione sul controllo Treeview per quanto riguarda la ricerca di un nodo in base al contenuto di una casella di testo.

Potreste darmi una mano?

Grazie

2 Risposte

  • Re: Trova un Nodo nel controllo Treeview

    Non ho capito la domanda…!

    Quando aggiungi con il metodo ADD i Nodi puoi aggiungere passando solo la Caption(testo mostrato) oppure anche la KEY, la TAG… tu come fai… e come fai a cercare…? 

    La cosa tuttavia lascia molto perplesso, in quanto solitamente si memorizza nella Key la PK del Record in modo da rendere molto rapida l'associazione tra record Corrente e Nodo…  

  • Re: Trova un Nodo nel controllo Treeview

    Riempita la struttura ad albero ho una funzione per modificare i dati legati al Nodo, quindi avevo bisogno di un modo per ritornare sullo stesso nodo dopo aver eseguito gli aggiornamenti. Comunque a beneficio di tutti, facendo un po' di prove ho risolto in questo modo:

    'Dichiaro una variabile pubblica 

    Public NodoSel as String

    ' alla pressione del mouse sul nodo memorizzo il testo del nodo selezionato nella variabile pubblica

    Private Sub treeView_NodeClick(ByVal node As Object)

           NodoSel = node.Text

    End sub

    'Infine, dopo aver modificato i dati del record ridisegno il controllo TreeView 

    Private Sub Form_AfterUpdate()
       Call loadTreeview   'ridisegna il controllo TreeView

       'cerca il nodo
       Dim tv As TreeView
       Dim nodNode As node
       Set tv = Me.TreeView.Object
       Set nodNode = Me.TreeView.Nodes.Item(NodoSel)
       nodNode.Selected = True
       nodNode.EnsureVisible
       'richiamo la funzione Nodeclick passando il Nodo selezionato in modo da rieseguire tutto il codice legato al click (sottomaschere ed altri     controlli presenti nella maschera) 

       Call treeView_NodeClick(nodNode)
       Me.Refresh
     End Sub

Devi accedere o registrarti per scrivere nel forum
2 risposte