Treeview Node visible oder treeview ersetzen

  • VB.NET
  • .NET (FX) 4.0

    Treeview Node visible oder treeview ersetzen

    Ich habe einen Treeview, bei dem ich je nach Nutzereinstellung alle Knoten oder nur ausgewählte Knoten anzeigen möchte.
    treenode.visible gibt es ja offensichtlich nicht.
    Also war mein Gedanke 2 Treenodes mit den verschiedenen Inhalten anzulegen und diese dann jeweils dem Treenode auf dem Formular zuzuweisen.
    Alle Treeviews sind eigene Controls, die vom Treeview erben.
    Alle Knoten wurden erweitert, indem sie als eigene Klassen definiert sind, die von Treenode erben.
    Ich kann auch die einzelnen Treeviews dem Formulartreeview zuweisen. Sämtliche Knoten wurden laut Debugger übernommen. Nur angezeigt werden sie leider nicht.
    Welche Möglichkeiten habe ich, das umzusetzen?
    tvwInfo ist der Originaltreeview der auf dem Formular enthalten ist und auch erstmal bis zur Neuzuweisung ordentlich funktioniert.
    dictnodsInfo ist ein Dictionary, in dem die Kindknoten mit ihren Schlüsseln aufgelistet sind.

    VB.NET-Quellcode

    1. Me.tvwalleOE = Me.tvwInfos
    2. Me.tvwEigeneOE = Me.tvwInfos
    3. For Each itmnodinfo In dictnodsInfo
    4. If Not itmnodinfo.Value.EigeneOE Then
    5. tvwalleOE.Nodes(itmnodinfo.Value.nodKategorie.Name).Nodes(itmnodinfo.Value.Name).ForeColor = Color.Red
    6. tvwEigeneOE.Nodes(itmnodinfo.Value.nodKategorie.Name).Nodes.Remove(itmnodinfo.Value)
    7. tvwalleOE.Nodes(itmnodinfo.Value.Name).ForeColor = Color.Red
    8. End If
    9. Next
    10. Me.tvwInfos = Me.tvwEigeneOE
    11. Me.tvwInfos.Refresh()