创建TreeNode和子项的组合

时间:2016-10-07 15:13:53

标签: c# .net winforms treeview

我在创建TreeNode和子组合时遇到问题。

这是树:

enter image description here

当父母被检查时,我希望有

的组合
 "formularzA3 076" 
       and
 "formularzA3 041"

我可以检查父母是否被选中:

TreeNodeCollection nodes = tree.Nodes;
   foreach (TreeNode n in nodes)
   {
      if (n.Checked)
      {
          MessageBox.Show(n.ToString());
      }   
   }

但这是父母的回报。 如何检查孩子是否也被检查了?

1 个答案:

答案 0 :(得分:0)

此处:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.treenode.childnodes(v=vs.110).aspx

您可以通过TreeNode媒体资源( TreeNode.ChildNodes )访问TreeNodeCollection个孩子。

   TreeNodeCollection nodes = tree.Nodes;
   foreach (TreeNode n in nodes)
   {
      if (n.Checked)
      {
          MessageBox.Show(n.ToString());
      }   
      foreach (TreeNode childNode in n.ChildNodes)
      {
         /* do something */
      }
   }

编辑:为什么不直接从整个集合中获取所有已检查的节点,如此答案中所示?:Get list of all checked nodes and its subnodes in treeview

还有一篇方便的MSDN文章,介绍如何遍历TreeNodeCollection中的所有节点:https://msdn.microsoft.com/en-us/library/wwc698z7(v=vs.110).aspx