我有一个包含两个控件(TreeView和ListView)的Windows窗体,我想显示TreeView
中特定路径的所有目录,以及当用户点击{{1}中列出的任何目录时此目录的所有文件都显示在TreeView
。
那是我的代码:
在Form_Load事件处理程序中,我将所有目录从E Drive加载到treeView1
ListView
问题在于:
private void Form1_Load(object sender, EventArgs e)
{
DirectoryInfo dInfo = new DirectoryInfo(@"E:\");
foreach (DirectoryInfo d in dInfo.GetDirectories())
{
treeView1.Nodes[0].Nodes.Add(d.Name);
}
}
当任何正文点击treeView1中的任何目录时,代码会跳转到列出listView1中列出所有文件的内容。
异常消息:无法找到路径的一部分。
答案 0 :(得分:0)
您需要向树节点添加一些数据。您可以将完整路径名放在Text
中,方法是将代码更改为:
treeView1.Nodes[0].Nodes.Add(d.FullName);
或者,您可以使用Name
,并将一些额外数据添加到Tag
的{{1}}字段中。
TreeNode
然后,当您需要该目录的文件时,请编写:
var node = treeView1.Nodes[0].Nodes.Add(d.Name);
node.Tag = d;
如果您不想保留所有这些DirectoryInfo dInfo = (DirectoryInfo)e.Node.Tag;
foreach (FileInfo f in dInfo.GetFiles())
...
引用,可以将DirectoryInfo
放在FullName
字段中:
Tag
然后当你去检索文件时:
node.Tag = d.FullName;