2017-08-22 3 views
0

Je dois créer un gestionnaire de fichiers à partir de zéro et je suis bloqué au début.C#: Obtenir le nom de noeud onClick dans TreeView pour un gestionnaire de fichiers

Il doit d'abord afficher la lettre de tous les lecteurs. Puis onclick affiche les dossiers et les fichiers dans childnode et ....

Voici ma question :

  1. Comment puis-je obtenir le nom de noeud (comme une chaîne) qui est cliqué?
  2. Est-ce la bonne façon de faire cela?

Ici je d'abord obtenir la lettre du nom de lecteurs:

var drives = DriveInfo.GetDrives(); 
     for (var i = 0; i < drives.Count(); i++) 
     { 
      var drivesletter = drives[i].Name; 
      treeView1.Nodes.Add(drivesletter); 
     } 

Ici, je créé une méthode, lorsque vous cliquez sur chaque nœud, nom de nœud doit être enregistré dans un variable, il sera obtenir la liste de tous les fichiers et les dossiers et les ajouter au nœud que nous avons cliqué dessus:

private void treeView1_Click(object sender, TreeViewEventArgs e) 
    { 
     var nodename = treeView1.Nodes.Find("*", true); //this line suppose to get clicked node name 
     var getdirs = Directory.GetDirectories(nodename); //error: It says nodename isnt string type 
     foreach (var getdir in getdirs) 
     { 
      treeView1.SelectedNode.Nodes.Add(getdir); 
     } 
    } 

Si vous h Toute source, exemple ou quelque chose de simple comme ce que je vais faire, c'est une grande aide.

+0

essayer e.Node, thats le nœud que vous avez cliqué – EpicKip

+0

tryed dans Directory.GetDirectories (e.Node) il est dit itsnot type chaîne –

+0

Qu'en est-' e.Node.ToString() 'ou' nodename.ToString() '? – waka

Répondre

1

Vous pouvez utiliser ce code pour revenir Node Nom:

protected void treeView1_AfterSelect (object sender, 
System.Windows.Forms.TreeViewEventArgs e) 
{ 
    // Determine by checking the Text property. 
    MessageBox.Show(e.Node.Text); 
} 
+2

utilisé ce 'Directory.GetDirectories (e.Node.Text);' et travaillé parfait. –