2017-08-22 8 views
0

最初からファイルマネージャを作成する必要があります。C#:ファイルマネージャのTreeViewでノード名のonClickを取得

すべてのドライブの最初の文字を表示する必要があります。 次にonclickは、フォルダにchildnodeと...のファイルを表示します。私の質問はここ

です:

  1. どのように私がクリックされた(文字列として)ノード名を取得できますか?
  2. これは正しい方法ですか?ここで

私は、最初のドライブ名の手紙を取得:私はあなたが各ノード上でクリックしたときに、ノード名が、その後、変数に保存する必要があり、メソッドを作成した。ここ

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

をそのファイル内のすべてのファイルとフォルダのリストを取得し、クリックしたノードに追加します。

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); 
     } 
    } 

どのようなソース、例、何か簡単なもの、それは大きな助けとなります。

+0

e.Nodeをしようとし、あなたがDirectory.GetDirectories(e.Node)にしようと試み – EpicKip

+0

をクリックしたノードのthatsそれがitsnot文字列型は何 'について –

+0

語りますe.Node.ToString() 'または' nodename.ToString() '? – waka

答えて

1

あなたはNode名前戻すには、このコードを使用することができます:

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

はこの 'Directory.GetDirectories(e.Node.Text);を使用し、完璧に作業しました。 –

関連する問題