Zum Inhalt springen

Vb.Net TreeView alle Knoten durchlaufen


zerberos

Empfohlene Beiträge

    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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...