首页 > 其他 > 详细

循环递归+返回值(TreeView示例)

时间:2014-12-13 23:14:54      阅读:413      评论:0      收藏:0      [点我收藏+]

示例:获取TreeView的所有Node,保存到List<TreeNode>,封装到通用工具类:

方法一:使用static方法、属性---调用前清空static类型的List

 1         public static List<TreeNode> allNodes = null;
 2         public static void GetTreeViewAllNodes(TreeNodeCollection Nodes)
 3         {
 4             foreach (TreeNode node in Nodes)
 5             {
 6                 allNodes.Add(node);
 7                 if (node.ChildNodes.Count > 0)
 8                 {
 9                     GetTreeViewAllNodes(node.ChildNodes);
10                 }
11             }
12         }
13         public static List<TreeNode> GetNodes(TreeView tv)
14         {
15             GetTreeViewAllNodes(tv.Nodes);
16             return allNodes;
17         } 
注意:如果使用static类型的List,每次调用该通用工具类之前需要清空List<TreeNode>,否则会出现叠加。在构造函数中清空:
public Tools()
{
      allNodes.Clear();   
}

方法二、使用内部方法、属性---直接调用

 1         public List<TreeNode> allNodes = new List<TreeNode>();
 2         public void GetTreeViewAllNodes(TreeNodeCollection Nodes)
 3         {
 4             foreach (TreeNode node in Nodes)
 5             {
 6                 allNodes.Add(node);
 7                 if (node.ChildNodes.Count > 0)
 8                 {
 9                     GetTreeViewAllNodes(node.ChildNodes);
10                 }
11             }
12         }
13         public List<TreeNode> GetNodes(TreeView tv)
14         {
15             GetTreeViewAllNodes(tv.Nodes);
16             return allNodes;
17         }

疑问:能不能使用一个方法既可以实现循环遍历,又可以获得返回值???

循环递归+返回值(TreeView示例)

原文:http://www.cnblogs.com/wanshi1989/p/4161958.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!