Autor Beitrag
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 28.04.10 08:17 
Guten Morgen,

da hast du wohl recht ;) (mit dem früh kommen früh gehen)

Also Rekursion ist ja eine Methode die sich selbst aufruft. D.h. als erstes brauchst du mal eine Methode aus der Schleife:
ausblenden C#-Quelltext
1:
2:
3:
private void SetSelectedNode(TreeNodeCollection nodes, int id)
{
}


In der Methode machst du im Prinzip das gleiche. Nur nicht nur für die Nodes der ersten Ebene, sondern eben auch von den jeweils unteren Ebene:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
foreach(TreeNode node in nodes)
{
   if ((int) node.Tag == id)
   {
       treeView1.SelectedNode = node;
       // Vorgang abbrechen (es sollte ja nur ein Element mit TAG == ID geben);
       return;
   }
   // hier kommt nun die Rekursion für alle Unterelemente
   SetSelectedNode(node.Nodes, id);
}


Rekursion ist doch schön ;) um 8:17 Morgens .. hehe

Schönen Tag
chip777 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 127

Win 7 Prof
C# VS 2008
BeitragVerfasst: Mi 28.04.10 08:52 
Juhu,

endlich funktioniert es so wie es soll, vielen lieben Dank.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 28.04.10 08:59 
Ach eine Anmerkung hab ich noch vergessen. Für das bessere Verständnis habe ich bei der Methodendeklaration das Mitschleifen der TreeView Instanz weggelassen. Das solltest du noch einbauen (private void SetSelectedNode(TreeView treeView, TreeNodeCollection nodes, int id) damit die Methode wiederverwendbar ist.