在使用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();
獲得該樹里的所有節點 。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/273561.html