Как я могу найти корневой узел в TreeView - PullRequest
7 голосов
/ 26 ноября 2011

В моем приложении Windows есть TreeView.В этом TreeView пользователь может добавить несколько корневых узлов, а также несколько подузлов для этих корневых узлов, а также несколько подузлов для этих подузлов и т. Д. ...

Например:

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

Теперь мой вопрос заключается в том, что если я нахожусь в узле 'E', как лучше всего найти его первый корневой узел ('Root1')?

Ответы [ 2 ]

13 голосов
/ 26 ноября 2011

Вот небольшой метод для вас:

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

Вы можете позвонить в своем коде так:

var rootNode = FindRootNode(currentTreeNode);
0 голосов
/ 05 мая 2018
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);
}

Наслаждайтесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...