简体   繁体   English

如何在TreeView中找到根节点

[英]How can I find a root node in TreeView

I have a TreeView in my Windows application. 我的Windows应用程序中有一个TreeView。 Tn this TreeView, the user can add some root nodes and also some sub nodes for these root nodes and also some sub nodes for these sub nodes and so on ... 在这个TreeView中,用户可以为这些根节点添加一些根节点和一些子节点,也为这些子节点添加一些子节点,依此类推......

For example: 例如:

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

Now my question is that if I am at node 'E' what is the best way to find its first root node ('Root1')? 现在我的问题是,如果我在节点'E',找到它的第一个根节点('Root1')的最佳方法是什么?

Here is a little method for you: 这里有一个小方法:

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

you can call in your code like this: 你可以像这样调用你的代码:

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

Example to get root treenode: 获取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);
}

Enjoy 请享用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM