Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180

    [C#]Cercare un nodo dentro una treeView

    Ciao ragazzi, esiste qualche funzione preconfezionata per cui, dando una stringa in ingresso (il nome del nodo che voglio cercare), scorra la treeview in cerca di quel nodo, ed in caso lo trova sposta il focus proprio su quel nodo??

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Per trovare un nodo passata una stringa:

    codice:
    treeView1.Nodes.Find("NomeNodo", false)
    Vedi se basta.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Uh, scusami, intendevo cercare il testo di un nodo, è la stessa cosa?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    E' possibile trovare qualche esempio pronto all'uso in questa pagina.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Si l'avevo guardato, però quello mi pare restituisce un array di stringhe. Come posso gestirlo per fare in modo che il programma, una volta verificato che quel nodo esiste, apra la treeview proprio facendo vedere quel nodo?

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da deb463is
    Si l'avevo guardato, però quello mi pare restituisce un array di stringhe.
    No, non mi pare che vi sia da alcuna parte un array di stringhe restituito.

    In ogni caso, la lettura e la comprensione dell'articolo serve per capire come applicare un metodo, che poi va ovviamente adattato al proprio caso.

    Prova a fare uno sforzo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    private void btn_SearchText_Click(object sender, EventArgs e)
    {
    string text = string.Empty;
    text = txt_Text.Text;
    bool b = true;
    if (text != string.Empty)
    {
    try
    {
    TreeNode[] arr = treeView1.Nodes.Find(text, b);
    for (i = 0; i < arr.Length; i++)
    {
    treeView1.SelectedNode = arr[i];
    treeView1.SelectedNode.BackColor = Color.Blue;
    }
    }
    catch { }

    }
    else
    MessageBox.Show("Enter Text");



    Grazie, questo esempio è molto calzante, però l'unico problema riguarda il fatto che viene ciclata solo la radice principale dell'albero, e i nodi figli non vengono considerati. Come si può risolvere? E' da una mattinata che cerco esempi ma non ho trovato nulla che riesca a ciclare l'intero albero con tutti i nodi padre-figli!

  8. #8
    Per cercare il nodo ti do un suggerimento.
    Tu parti dal nodo radice e cicli nei suoi nodi figli. Per ogni nodo figlio ontrolli se contiene la stringa che stai cercando, ma anche se a sua volta contiene dei nodi figlio. Se sì, allora lo aggiungi a una lista di nodi, la quale ti fornisce di volta in volta un nodo nel quale cercare. Alla fine di ogni iterazione, ricordati di cancellare dalla lista il nodo entro al quale hai ciclato.
    Per sapere la lista dei nodi figli, usa la proprietà Nodes degli oggetti TreeNode.
    Quando ne trovi uno, puoi utilizzare il metodo EnsureVisible per far espandere tutti i nodi necessari affinchè il TreeNode chiamante sia visibile

    Spero di esserti stato utile, ciao
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.