我在树视图中遇到问题,即我从树视图中选择了1个文件夹,我的列表框将显示文件夹的文件名
我只能显示第一个文件夹的文件
我要在选择时显示每个文件夹的文件名
我该怎么做?
这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
//Lấy các Disk trong Explorer
GetDisk();
}
//Get Disk
public void GetDisk()
{
string[] disk = Directory.GetLogicalDrives();
for (int i = 0; i < disk.Length; i++)
{
tvFolder.Nodes.Add(disk[i]);
GetFol(disk[i], i);
}
}
//Get Folder
public void GetFol(string name, int lv)
{
try
{
string[] fd = Directory.GetDirectories(name);
for (int i = 0; i < fd.Length; i++ )
{
tvFolder.Nodes[lv].Nodes.Add(fd[i]);
//Sub Dir
if (Directory.Exists(fd[i]))
{
tvFolder.Nodes[lv].Nodes.Add("Temp");
}
}
GetFile(name);
}
catch //(Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
//Get File Function
public void GetFile(string nameFol)
{
string[] strFile = Directory.GetFiles(nameFol);
for (int i = 0; i < strFile.Length; i++)
{
//Get File Image
string strExtension = strFile[i].Substring(strFile[i].LastIndexOf('.') + 1).ToLower();
if (strExtension == "jpg" || strExtension == "jpeg" || strExtension == "png" || strExtension == "gif")
{
string fileName = Path.GetFileName(strFile[i]);
lsbImages.Items.Add(strFile[i]);
}
}
}
谢谢!
答案 0 :(得分:0)
因为您不处理树视图节点选择:
private void Form1_Load(object sender, EventArgs e)
{
GetDisk();
tvFolder.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(tvFolder_AfterSelect);
}
//...
private void tvFolder_AfterSelect(object sender, TreeViewEventArgs e)
{
GetFile(e.Node.Text);
}
获取更多信息: