|
分類:[C#]
今ツリービューでフォルダを写し、 フォルダを選んだ際その中に入っているファイルを、リストビューに写す構文を作っているのですが、 ツリービューで写っている親フォルダ名の一部を消したいです。
例えば コンボボックスから C:\Users\ユーザー名\を選んだ場合、
C:\Users\ユーザー名\Documents C:\Users\ユーザー名\Music C:\Users\ユーザー名\Downloads
等がツリービューに並びますが、C:\Users\ユーザー名\を消して、 \Documents \Music だけ表示させたいです。
そこで色々調べてみると LabelEditをTrueにして自分では消せるようになったのですが、下記問題が発生しました。
1、あるサイトにて、treeView1.Nodes("C:\Users\ユーザー名\").Text=""; のようにすると一斉に消せるとなっていたが、「Nodes」のところでエラーが出る。
2、フォルダ名をいじると子ノードが開けずエラーが出る。
この2つの問題を解決したいのですが、何か良い方法はないでしょうか?
教えていただけるとありがたいです。 よろしくお願いいたします。
public Form1() { InitializeComponent(); string[] Dir = Directory.GetDirectories(fPH ///他フォームのコンボボックスから選んだパス); foreach (String GDir in Dir) { TreeNode node = new TreeNode(GDir); node.Nodes.Add(new TreeNode()); treeView1.Nodes.Add(node); }
}
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { TreeNode node = e.Node; String path = node.FullPath; node.Nodes.Clear(); try { DirectoryInfo dirList = new DirectoryInfo(node.FullPath); foreach (DirectoryInfo fo in dirList.GetDirectories()) { TreeNode child = new TreeNode(fo.Name); child.Nodes.Add(new TreeNode()); node.Nodes.Add(child); } } catch (Exception) { }
} public void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { Item(e.Node.FullPath); }
|