TreeView erstellen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von FreShmaKer.

    TreeView erstellen

    Haaaiii :D

    Ich habe ein TreeView auf meiner Form und ein Button. Nun möchte ich per Button_Click ein TreeView-Steuerelement erstellen. Mit meinem Code funktioniert es nicht.

    Wo ist mein Fehler?

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim tv As New TreeView()
    3. Dim fm As String()
    4. tv.Dock = DockStyle.Fill
    5. tv.Nodes.Add("Familie")
    6. fm = New String() {"Mutter", "Vater", "Kind", "Enkelkind"}
    7. For Each k As String In fm : tv.Nodes(0).Nodes.Add(k) : Next
    8. End Sub
    *haha :D Danke. Wie blöd von mir!


    Aber irgendetwas scheint hier nicht zu stimmen. Es wird kein Knoten "Familie" angelegt. Vielmehr wird an einer anderen Stelle der Form ein weißes Viereck dargestellt.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim tv As New TreeView()
    3. Dim fm As String()
    4. tv.Dock = DockStyle.Fill
    5. tv.Nodes.Add("Familie")
    6. fm = New String() {"Mutter", "Vater", "Kind", "Enkelkind"}
    7. For Each k As String In fm : tv.Nodes(0).Nodes.Add(k) : Next
    8. Controls.Add(tv)
    9. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „FreShmaKer“ ()

    Lass das dynamische Erstellen des Treeviews besser - als "Auszubildender" sollteste dir kein son Quatsch angewöhnen :).
    Zieh Treeview ausse Toolbox, und stell mw. Dock.Fill ein oder was auch immer.
    Eine Family müsste sich so reinmachen lassen:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    2. Dim root = TreeView1.Nodes.Add("Familie")
    3. For Each k As String In {"Mutter", "Vater", "Kind", "Enkelkind"} : root.Nodes.Add(k) : Next
    4. TreeView1.ExpandAll()
    5. End Sub
    Danke für den Tipp! :D

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim tv = TreeView1.Nodes.Add("Familie")
    2. For Each k As String In {"Mutter", "Vater", "Kind", "Enkelkind"} : tv.Nodes.Add(k) : Next
    3. TreeView1.ExpandAll()


    Bei "For Each k As String In {"Mutter", "Vater", "Kind", "Enkelkind"} : tv.Nodes.Add(k) : Next wird ein Ausdruck erwartet. Welcher kann es sein?
    ah - vb2008!

    VB.NET-Quellcode

    1. For Each k In new String(){"Mutter", "Vater", "Kind", "Enkelkind"}


    Aber ladedir besser vb2010 - das hat schon noch ein paar Vorzüge gegenüber 2008.

    "tv" als Bezeichnung des root-Nodes ist übrigens überaus irreführend: "tv" deutet vom Namen her an, ein Treeview zu sein, aber tatsächlich ists ein TreeNode.
    Nenn mich kleinlich, aber mit solchen kleinen Verwirrungen kann man sich ziemliche Debug-Probleme einhandeln.
    Danke ersteinmal für den Tipp. Es funktioniert, wie ich es wünschte. Ich habe die Bezeichnung auch umbenannt, sodass ich mir deinen Ratschlag beherzige :D

    ErfinderDesRades schrieb:

    Aber ladedir besser vb2010 - das hat schon noch ein paar Vorzüge gegenüber 2008.

    Ich habe mich gerade mit VB2008 gut eingelebt! Macht es denn einen großen Unterschied in der Oberfläche/Bedienung der Entwicklersoftware? Wo könnte ich Sie den legal (!) runterladen?