如何在TreeView中找到根节点

M_M*_*abi 7 c# treeview winforms

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

例如:

Root1
     A
       B
         C
         D
          E  
Root2
     F
      G
.
.
.
Run Code Online (Sandbox Code Playgroud)

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

Fis*_*aen 13

这里有一个小方法:

private TreeNode FindRootNode(TreeNode treeNode)
{
    while (treeNode.Parent != null)
    {
        treeNode = treeNode.Parent;
    }
    return treeNode;
}
Run Code Online (Sandbox Code Playgroud)

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

var rootNode = FindRootNode(currentTreeNode);
Run Code Online (Sandbox Code Playgroud)