Usare Treeview

giovedì 20 aprile 2006 - 12.06

kiara83 Profilo | Junior Member

Come faccio a creare un form con una treeview in cui vado a impostare solo il nodo radice e da lì mi fa vedere tutte le sottodirectory?
In poche parole vorrei una cosa del tipo esplora risorse, che mi visualizzi le cartelle e le sottocartelle.
Come lo posso rendere nel codice?

Mi sono spiegata male:
non so da che parte iniziare.
Supponendo che il mio nodo radice sia C, come faccio a creare tutto l'albero delle cartelle?
Devo usare una struttura ricorsiva con il foreach?
Ad esempio dal nodo C vado a vedere se ci sono sottodirectory, ognuna di queste diventerà un nodo figlio. Per ogni nodo figlio riapplico il tutto....
I miei problemi stanno principalmente nel capire come dirgli che quello è un nodo figlio o un altro nodo e nella mia classe form dove devo andare a mettere tutto questo?

kiara83 Profilo | Junior Member

Ho abbastanza risolto, ma mi rimane un problema:
una volta creato l'albero, vorrei visualizzare i file contenuti in un directory dell'albero.
Quindi uso il metodo del click associato al mio treeview.
Ma come faccio all'interno del metodo treeview a riferirmi alla cartella su cui faccio il doppio click?

eikichi Profilo | Newbie

Usa la proprietà Tag dei nodi.
In fase di creazione del nodo scrivi nel Tag il percorso completo della cartella.

kiara83 Profilo | Junior Member

grazie

kiara83 Profilo | Junior Member

Ho una Combobox che mi mostra le directory C,D,E; Vorrei che quando seleziono uno di questi mi mostrasse nel mio treeview la directory selezionata come nodo radice. Io ho fatto questo ma mi da errore perchè?

FileImmagine Cobj = new FileImmagine("C:\\","C:\\");
FileImmagine Dobj = new FileImmagine("D:\\","D:\\");
FileImmagine Eobj = new FileImmagine("E:\\","D:\\");
CBxml.Items.AddRange(new object[] {Cobj,Dobj,Eobj});
FileImmagine root = (FileImmagine)CBxml.SelectedItem;
TreeNode node = TWxml.Nodes.Add(root.Path);

Additional information: Riferimento a un oggetto non impostato su un'istanza di oggetto.

Metto anche la classe FileImmagine
using System;

namespace Alberi
{
/// <summary>
/// Summary description for FileImmagine.
/// </summary>
public class FileImmagine
{
private string path;
private string nome;

public string Path
{
get
{
return path;
}
}
public FileImmagine(string Path)
{
path = Path;
nome = System.IO.Path.GetFileNameWithoutExtension(Path);
}
public FileImmagine(string Path, string Nome)
{
path = Path;
nome = Nome;
}

public override string ToString()
{
return nome;
}
}
}

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5