在使用Treeview控件时,经常要遍历其所以节点。Treeview控件本身没有这个功能。这里我们利用递归方法,实现GetAllNodes()函数来获得根所有根节点下的节点。返回值为节点列表,函数为静态。
我们可以把这两个函数增加到Treeview树的类中,叫扩展类功能。
这里的this,指明扩展类的主体。一个是Treeview,获得整个树的所有节点列表,一个是节点,获得该节点下的所有节点列表。
public static class TreeViewExtensions
{
public static List<TreeNode> GetAllNodes(this TreeView tv)
{
List<TreeNode> result = new List<TreeNode>();
foreach (TreeNode child in tv.Nodes)
{
result.AddRange(child.GetAllNodes());
}
return result;
}
public static List<TreeNode> GetAllNodes(this TreeNode node)
{
List<TreeNode> result = new List<TreeNode>();
result.Add(node);
foreach (TreeNode child in node.Nodes)
{
result.AddRange(child.GetAllNodes());
}
return result;
}
}
例子,直接调用
treeview.GetAllNodes();
获得该树里的所有节点 。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
