在WinForms中實現TreeView的遞歸加載可以通過以下方法來實現:
private void LoadTreeNodes(TreeNode parentNode, string path)
{
// 獲取指定路徑下的所有子目錄
string[] directories = Directory.GetDirectories(path);
// 遍歷子目錄并添加到父節點下
foreach (string directory in directories)
{
TreeNode node = new TreeNode(Path.GetFileName(directory));
parentNode.Nodes.Add(node);
// 遞歸加載子目錄
LoadTreeNodes(node, directory);
}
// 獲取指定路徑下的所有文件
string[] files = Directory.GetFiles(path);
// 遍歷文件并添加到父節點下
foreach (string file in files)
{
TreeNode node = new TreeNode(Path.GetFileName(file));
parentNode.Nodes.Add(node);
}
}
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
TreeNode node = e.Node;
if (node.Nodes.Count == 0)
{
string path = GetPathFromTreeNode(node);
LoadTreeNodes(node, path);
}
}
請注意,以上代碼中的GetPathFromTreeNode方法是一個自定義方法,用于獲取節點對應的目錄路徑。通過以上方法,您可以實現TreeView的遞歸加載功能。