vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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
Expand 
Autor: norbert55
Datum: 06.11.04 12:16

Hallo NG,
quäle mich wieder mal mit einem Prob herum. Will meine Tree aus einer XML-Datei generieren. Die XML sieht etwa so aus:

<?xml version="1.0"?>
<Menu>
<Menupunkt1 exp="0">
<KV-Abrechnung/>
<BG-Abrechnung/>
<Privatabrechnung/>
</Menupunk1>
<Menupunkt2 exp="1">
<Unter1/>
<Unter2/>
<Unter3/>
</Menupunkt2>
</Menu>

Zum Einlesen hab ich geschrieben:
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 = TreeView1.Nodes.Add(Caption)
        Else
            tn = parent.Nodes.Add(Caption)
            If Not (node.Attributes Is Nothing) Then
                If node.Attributes.Count > 0 Then
                    If node.Attributes.GetNamedItem("exp").Value = "1" Then
                        tn.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
    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
Die TreeView soll später so geöffnet werden, wie sie der Anwender verlassen hat. Dazu will ich die Eigenschaft "exp" = 0 oder 1 nutzen. Hat ein Element die Eigenschaft exp=1, soll der Knoten expandiert sein. Aber mein tn.Expand() tut mir nicht den Gefallen. Liegt es vielleicht daran, dass zum Zeitpunkt des tn = parent.Nodes.Add(Caption) noch keine Unterlemente vorhanden sind und somit das expand noch nicht wirken kann? Jedenfalls wird die Tree primär immer collapsed angezeigt. Wie verdammich macht man das? ExpandAll will ich aber auch nicht nehmen. Ich könnte mir höchstens die Node in einer Variablen merken, bis das Tree fertig erstellt ist und dann wieder zurück zu dieser Node springen, um sie zu expandieren. Dazu frage ich nochmal im nächsten Thread.
Und hat jemand ein Beispiel, wie ich dann die TreeView wieder in die XML-Datei wegschreibe (mit meinen Eigenschaften "exp")?
Danke für eure Mühe.
Norbert
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.042WaldiMaywood13.11.04 15:37
Re: Expand965norbert5513.11.04 16:55
Re: Expand963WaldiMaywood13.11.04 18:02
Re: Expand966norbert5513.11.04 18:44
Re: Expand974WaldiMaywood13.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