zerberos Geschrieben 5. November 2008 Teilen Geschrieben 5. November 2008 Hallo, ich habe ein TreeView TreeView1 Wie kann ich jetzt in diesem TreeView alle Nodes durchlaufen? Hintergrund: Ich möchte das TreeView solange durchlaufen bis ein knoten mit einen bestimmten text gefunden is und diesen dann selektieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 5. November 2008 Teilen Geschrieben 5. November 2008 Am einfachsten indem du die Items rekursiv durchsuchst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zerberos Geschrieben 5. November 2008 Autor Teilen Geschrieben 5. November 2008 Am einfachsten indem du die Items rekursiv durchsuchst Hast du nen codebeispiel? Ich hab das Bis jetzt nur hinbekommen die Hauptknoten zu durchlaufen. Aber Jeder Hauptknoten kann nur 2 Ebenen unter sich haben. Und diese Ebenen hab ich noch nicht geschafft auszulesen.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 5. November 2008 Teilen Geschrieben 5. November 2008 Weißt du was Rekursion bedeutet? Wieviele Unterkniten jeder Knoten hat ist dabei egal. Wie sieht denn dein Versuch aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xk4fu Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 Dim MaNodes(100) As String Dim MiIndex As Integer Dim test As String MiIndex = -1 test = SearchTV(TreeView1, 0, 0, 0) Private Function SearchTV(ByVal tv As TreeView, _ ByVal node As Long, _ ByVal subnode As Long, _ ByVal subnode2 As Long) As String If tv.Nodes(node).NextNode Is Nothing Then If tv.Nodes(node).GetNodeCount(False) - 1 >= subnode Then If tv.Nodes(node).Nodes(subnode).GetNodeCount(False) - 1 >= subnode2 Then SearchTV(tv, node, subnode, subnode2 + 1) MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Nodes(subnode).Nodes(subnode2).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Nodes(subnode).Nodes(subnode2).Text) Else SearchTV(tv, node, subnode + 1, 0) MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Nodes(subnode).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Nodes(subnode).Text) End If Else MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Text) Exit Function End If Else If tv.Nodes(node).GetNodeCount(False) - 1 >= subnode Then If tv.Nodes(node).Nodes(subnode).GetNodeCount(False) - 1 >= subnode2 Then SearchTV(tv, node, subnode, subnode2 + 1) MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Nodes(subnode).Nodes(subnode2).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Nodes(subnode).Nodes(subnode2).Text) Else SearchTV(tv, node, subnode + 1, 0) MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Nodes(subnode).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Nodes(subnode).Text) End If Else SearchTV(tv, node + 1, 0, 0) MiIndex = MiIndex + 1 MaNodes.SetValue(tv.Nodes(node).Text, MiIndex) 'MessageBox.Show(tv.Nodes(node).Text) End If End If End Function Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 xk4fu, das ist keine Rekursion. (... und wäre mir auch viel zu viel Schreibarbeit. ) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 Klar ist das ne Rekursion nur macht die Funktion irgendwie nicht das was oben gefragt ist... @xk4fu Warum so umstänlich? public bool SelectNode(TreeNodeCollection nodes, string text) { foreach (TreeNode node in nodes) { if (node.Text == text) { node.TreeView.SelectedNode = node; return true; } else { if (SelectNode(node.Nodes, text)) return true; } } return false; } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
xk4fu Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 tdm, du weist schon, was eine rekursion ist, oder ist zwar umständlich, aber naja... die funktion sollte auch nur als denkanstoß dienen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 die funktion sollte auch nur als denkanstoß dienen oh sry ich merk gerade das ich dich mit dem Threadersteller verwechselt habe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 tdm, du weist schon, was eine rekursion ist, oder ist zwar umständlich, aber naja... Ja, Durch die Fülle hab ich die Selbstaufrufe nicht wirklich gesehen. :floet: Tut mir leid. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.