C# 如何设置展开TreeView节点的级别?
执行此代码将展开根目录下的所有主节点 root images files docs 我试图在foreach中添加:C# 如何设置展开TreeView节点的级别?,c#,.net,winforms,treeview,C#,.net,Winforms,Treeview,执行此代码将展开根目录下的所有主节点 root images files docs 我试图在foreach中添加: if (tn.Level == 1) tn.Expand(); 但这不是一个解决办法 也许我需要foreach中的foreach 所有这些代码都是在BackgroundWorker下工作的方法的一部分,该方法递归地获取我的FTP服务器目录和文件列表 因此,在实时获取目录和添加节点时,我希望扩展节点级别。因为数据结构是递归的,所以最合适的处理方法是递
if (tn.Level == 1)
tn.Expand();
但这不是一个解决办法
也许我需要foreach
中的foreach
所有这些代码都是在BackgroundWorker
下工作的方法的一部分,该方法递归地获取我的FTP服务器目录和文件列表
因此,在实时获取目录和添加节点时,我希望扩展节点级别。因为数据结构是递归的,所以最合适的处理方法是递归地遍历它。大概是这样的:
void ExpandToLevel(TreeNodeCollection nodes, int level)
{
if (level > 0)
{
foreach (TreeNode node in nodes)
{
node.Expand();
ExpandToLevel(node.Nodes, level - 1);
}
}
}
ExpandToLevel(treeView1.Nodes, 1);
你可以这样称呼它:
void ExpandToLevel(TreeNodeCollection nodes, int level)
{
if (level > 0)
{
foreach (TreeNode node in nodes)
{
node.Expand();
ExpandToLevel(node.Nodes, level - 1);
}
}
}
ExpandToLevel(treeView1.Nodes, 1);
这只会扩大第一个层次。通过2来扩展前两个级别,等等