在使用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
微信掃一掃
支付寶掃一掃