繁体   English   中英

在Visual C#中的树视图控件中列出父节点的所有子节点

[英]List all child nodes of a parent node in a treeview control in Visual C#

我有一个treeview控件,它包含一个父节点和来自该父节点的几个子节点。 有没有办法从主父节点获取所有子节点的数组或列表? 即从treeview.nodes [0]或第一个父节点获取所有节点。

public IEnumerable<TreeNode> GetChildren(TreeNode Parent)
{
    return Parent.Nodes.Cast<TreeNode>().Concat(
           Parent.Nodes.Cast<TreeNode>().SelectMany(GetChildren));
}

您可以递归地添加到列表中,如下所示:

public void AddChildren(List<TreeNode> Nodes, TreeNode Node)
{
    foreach (TreeNode thisNode in Node.Nodes)
    {
        Nodes.Add(thisNode);
        AddChildren(Nodes, thisNode);
    }
}

然后在根节点中调用此例程:

List<TreeNode> Nodes = new List<TreeNode>();
AddChildren(Nodes, treeView1.Nodes[0]);

你可以做这样的事情..来获取树视图中的所有节点..

 private void PrintRecursive(TreeNode treeNode)
 {
     // Print the node.
      System.Diagnostics.Debug.WriteLine(treeNode.Text);
      MessageBox.Show(treeNode.Text);
      // Print each node recursively.
       foreach (TreeNode tn in treeNode.Nodes)
       {
           PrintRecursive(tn);
        }
 }

   // Call the procedure using the TreeView.
 private void CallRecursive(TreeView treeView)
 {
      // Print each node recursively.
        TreeNodeCollection nodes = treeView.Nodes;
         foreach (TreeNode n in nodes)
         {
             PrintRecursive(n);
          }
   }

你愿意接受这个链接吗?

http://msdn.microsoft.com/en-us/library/wwc698z7.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM