none
Alternative für TreeView1.getAllNodes() RRS feed

  • Frage

  • Hallo,

    ich möchte gerne


    Dim allNodes as ILIst(Of TreeNode) = TreeView1.getAllNodes()


    in VB .Net einsetzen. Leider funktioniert ".getAllNodes() " nicht.

    Gibt es eine Alternative?


    Gruß

    Steffen
    Montag, 8. März 2010 18:01

Antworten

  • Hallo Steffen,

    Leider funktioniert ".getAllNodes() " nicht.

    Das wird wohl daran liegen, das es kein getAllNodes() gibt; dann kann es ja auch nicht funktionieren.

    Mit TreeView1.Nodes hast Du doch die komplette Collection der vorhandenen Nodes, wozu brauchst Du es dann noch als List? 

    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    • Als Antwort markiert Steffen01 Montag, 8. März 2010 19:39
    Montag, 8. März 2010 19:13

Alle Antworten

  • Hallo Steffen,

    Leider funktioniert ".getAllNodes() " nicht.

    Das wird wohl daran liegen, das es kein getAllNodes() gibt; dann kann es ja auch nicht funktionieren.

    Mit TreeView1.Nodes hast Du doch die komplette Collection der vorhandenen Nodes, wozu brauchst Du es dann noch als List? 

    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    • Als Antwort markiert Steffen01 Montag, 8. März 2010 19:39
    Montag, 8. März 2010 19:13
  • Hallo Olaf,

    Du hast ja so recht. Was ich ich möchte, ist folgendes ausführen:

    Private Sub UpdateNodes_Orginal()
            Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\treeSave.mdb")
            con.Open()
            Dim allNodes As IList(Of TreeNode) = TreeView1.getAllNodes()
            Dim i As Integer = 0
            While i < allNodes.Count
                Dim node As TreeNode = DirectCast(allNodes(i), TreeNode)
                Dim parentId As Integer = CInt(IIf(node.Parent Is Nothing, -1, allNodes.IndexOf(node.Parent)))................
    ...........

    Gruß

    Steffen
    Montag, 8. März 2010 19:24
  • Hallo Olaf,

    manchmal sieht man den Wald vor lauter Bäumen nicht und dabei
    ist es so einfach:

    Dim allNodes as TreeNodCollection = TreeView1.Nodes


    Danke für den Hinweis!

    Gruß

    Steffen
    Montag, 8. März 2010 19:36
  • Du kannst auch noch einfacher mit For Each durch iterieren, dann kannst Du Dir die While Schleife und die zusätzlichen Zuweisung sparen:

    Private Sub Button1_Click(ByVal sender As System.Object, _

                              ByVal e As System.EventArgs) _

                              Handles Button1.Click

     

        For Each node As TreeNode In TreeView1.Nodes

            Debug.Print(node.Name)

        Next

     

    End Sub


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Montag, 8. März 2010 19:58
  • Hallo Olaf,

    meine eigentliche Aufgabe ist es, die Daten eines Treeview in einer DB zu speichern um sie
    dann wiederum laden zu können.

    Wenn es mit For Each einfacher zu machen ist, wäre mir das lieber.
    Nur habe ich keine Vorstellung, wie das zu machen ist. Ich denke
    dabei an das rekursive iterieren durch die Knoten.

    Aber ich muß zugeben, das meine Lösung auch nicht die Beste ist, zumal
    sich jetzt heraus stelle, dass die node.parent nicht gespeichert werden :-(

    Grüße aus Oberhausen

    Steffen
    Montag, 8. März 2010 21:39