2011-11-26 12 views
7

Mam TreeView w mojej aplikacji Windows. Tn tego TreeView, użytkownik może dodać kilka węzłów korzeniowych, a także niektóre węzły podrzędne dla tych węzłów korzeniowych, a także niektóre węzły podrzędne dla tych węzłów podrzędnych i tak dalej ...Jak znaleźć węzeł główny w TreeView

Na przykład:

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

teraz moje pytanie jest takie, że jeśli jestem w węźle "E", jaki jest najlepszy sposób na znalezienie pierwszego węzła głównego ("Root1")?

Odpowiedz

13

Oto mały metoda dla Ciebie:

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

można zadzwonić w kodzie tak:

var rootNode = FindRootNode(currentTreeNode); 
+0

dzięki Fischermaen, więc katalogów nie posiada żadnego majątku, aby znaleźć węzeł główny podrzędny, robi to? –

+0

@M_Mogharrabi: Właśnie. – Fischermaen

+1

znacznie lepiej jest cachować root podczas populacji. –

Powiązane problemy