如何在TreeView中找到根节点

时间:2011-11-26 07:03:56

标签: c# winforms treeview

我的Windows应用程序中有一个TreeView。在这个TreeView中,用户可以为这些根节点添加一些根节点和一些子节点,也为这些子节点添加一些子节点等等......

例如:

Root1
     A
       B
         C
         D
          E  
Root2
     F
      G
.
.
.

现在我的问题是,如果我在节点'E',找到它的第一个根节点('Root1')的最佳方法是什么?

2 个答案:

答案 0 :(得分:13)

这是一个小方法:

private TreeNode FindRootNode(TreeNode treeNode)
{
    while (treeNode.Parent != null)
    {
        treeNode = treeNode.Parent;
    }
    return treeNode;
}

你可以像这样调用你的代码:

var rootNode = FindRootNode(currentTreeNode);

答案 1 :(得分:0)

public TreeNode RootTreeNode(TreeNode n) { while (n.Level > 0) { n = n.Parent; } return n; } 

获取root treenode的示例:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    var node = (e == null ? ((System.Windows.Forms.TreeView)sender).SelectedNode : e.Node);
    var rootNode = RootTreeNode(node);
}

享受