vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Expand 
Autor: WaldiMaywood
Datum: 13.11.04 15:37

>> bekomme ich schon hin,aber die ganze Hierarchie geht flöten

Bedenke, jedes TreeNode ist nur ein "simples" Objekt, welches immer einen Parent und Childs hat. Meinerseits fülle immer ein "Root-"TreeNode, mit allen Unterknoten, am Schluss weiße ich das gefüllte TreeNode dem TreeView zu. Würde niemals auf die Idee kommen, das TreeView mit TreeView.Nodes.Add(Text) zu füllen. Ein TV füllen ist vom Vergleich her genauso als ob du ein Panel erzeugst, dieses mit einigen Controls füllst, und am Schluss das "fertige" Panel der ControlCollection der Form zuweißt.

Hier mal mein Versuch (ohne VS gecodet):
Sub ShowNode(ByVal parent As TreeNode, ByVal node As XmlNode)
        Dim Caption As String
        Dim i As Integer
        Dim tn As TreeNode
 
        'Wird kein gültiges DOM-Objekt übergeben, wird die Routine beendet:
        If node Is Nothing Then Exit Sub
        If node.NodeType = XmlNodeType.Document Then Caption = "Auswahl"
        If node.NodeType = XmlNodeType.Element Then Caption = node.Name
        If (node.NodeType = XmlNodeType.CDATA) Or (node.NodeType = _
          XmlNodeType.Text) Then Caption = node.Value
        If Caption = "" Then Exit Sub
        If parent Is Nothing Then
            tn = New TreeNode(Caption)
            '// tn = TreeView1.Nodes.Add(Caption)
        Else
            tn = New TreeNode(Caption)
            parent.Nodes.Add(tn)
            If Not (node.Attributes Is Nothing) Then
                If node.Attributes.Count > 0 Then
                    If node.Attributes.GetNamedItem("exp").Value = "1" Then
                        tn.expand()
                        '// oder: 
                        parent.expand() 
                    End If
                End If
            End If
        End If
        If Not (node.ChildNodes Is Nothing) Then
            For i = 0 To node.ChildNodes.Count - 1
                ShowNode(tn, node.ChildNodes.Item(i))
            Next
        End If
        TreeView1.Nodes.Add(parent)
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim xmlDoc As New XmlDocument
        Try
            xmlDoc.Load("daten.xml")
        Catch
            MessageBox.Show("Datei nicht gefunden!")
            Exit Sub
        End Try
        TreeView1.Nodes.Clear()
        ShowNode(Nothing, xmlDoc)
    End Sub
Falls der Code nicht funktioniert, schau ich es mir nachher mal in VS genauer an. Auf jeden Fall gibt es für dein Problem ein Lösung. Welches .NET FW verwendest du? Hast du das .NET SP installiert?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Expand1.374norbert5506.11.04 12:16
Re: Expand1.132WaldiMaywood06.11.04 14:05
Re: Expand972norbert5506.11.04 14:26
Re: Expand1.026WaldiMaywood06.11.04 14:40
Re: Expand1.023norbert5513.11.04 12:44
Re: Expand1.043WaldiMaywood13.11.04 15:37
Re: Expand966norbert5513.11.04 16:55
Re: Expand963WaldiMaywood13.11.04 18:02
Re: Expand966norbert5513.11.04 18:44
Re: Expand975WaldiMaywood13.11.04 19:27
Re: Expand991norbert5513.11.04 20:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel