save-load treeview

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

Ik maak een treeview o.a. als volgt:
Code:
 Dim n As String
        i = (i + 1) Mod 24

        n = InputBox("Voer een node in")
        If tv.SelectedNode Is Nothing Then
            tv.Nodes.Add(n, n, i, i)
        Else : tv.SelectedNode.Nodes.Add(n, n, i, i)
        End If[CODE]

Hoe save and load ik deze treeview. Heb overal gezocht maar kan niet echt iets vinden hiervoor
 
dit boven aan.
Code:
  Private myCoolFile As String = "C:\jemap\de naam van je file.txt" '// your file.

om te laden
onder een button of in formloade.
Code:
 If IO.File.Exists(myCoolFile) Then '// check if file exists.
            Dim myCoolFileLines() As String = IO.File.ReadAllLines(myCoolFile) '// load your file as a string array.
            For Each line As String In myCoolFileLines '// loop thru array list.
                Dim lineArray() As String = line.Split("#") '// separate by "#" character.
                Dim newItem As New ListViewItem(lineArray(0))
                newItem.SubItems.Add(lineArray(1))
                newItem.SubItems.Add(lineArray(2))
                newItem.SubItems.Add(lineArray(3))
                newItem.SubItems.Add(lineArray(4))
                ListView1.Items.Add(newItem)
            Next
        End If

om te saven onder een button
Code:
Dim myWriter As New IO.StreamWriter(myCoolFile)
        For Each myItem As ListViewItem In ListView1.Items
            myWriter.WriteLine(myItem.Text & "#" & myItem.SubItems(1).Text & "#" & myItem.SubItems(2).Text _
                               & "#" & myItem.SubItems(3).Text & "#" & myItem.SubItems(4).Text & "#" & myItem.SubItems(5).Text _
                               & "#" & myItem.SubItems(6).Text & "#" & myItem.SubItems(7).Text _
                               & "#" & myItem.SubItems(8).Text & "#" & myItem.SubItems(9).Text) ' write Item and SubItem.


        Next
        myWriter.Close()



Mischien heb je hier wat aan


http://www.bigresource.com/VB-Save-to-txt-file-from-Treeview1-extended-key-data--Xc8GXc61t7.html
 
Laatst bewerkt:
Voor de treeview

maak een class
Code:
<Serializable()> _
Public Class MyNode

    Private _text As String
    Public Property Text() As String
        Get
            Return _text
        End Get
        Set(ByVal value As String)
            _text = value
        End Set
    End Property

    Private _tag As String
    Public Property Tag() As String
        Get
            Return _tag
        End Get
        Set(ByVal value As String)
            _tag = value
        End Set
    End Property

    Private _nodes As List(Of MyNode)
    Public Property Nodes() As List(Of MyNode)
        Get
            Return _nodes
        End Get
        Set(ByVal value As List(Of MyNode))
            _nodes = value
        End Set
    End Property

    Public Sub New()
        _nodes = New List(Of MyNode)
    End Sub

    Public Sub New(ByVal text As String, ByVal tag As String)
        Me.New()
        _text = text
        _tag = tag
    End Sub

End Class

in je form
Code:
 Private Function BuildMyNodes(ByVal treeNodes As TreeNodeCollection) As List(Of MyNode)

        Dim myNodes As New List(Of MyNode)

        For Each node As TreeNode In treeNodes
            Dim newNode As New MyNode(node.Text, node.Tag)
            If (node.Nodes.Count > 0) Then
                newNode.Nodes = BuildMyNodes(node.Nodes)
            End If

            myNodes.Add(newNode)
        Next

        Return myNodes

    End Function


    Private Function BuildTreeNodes(ByVal myNodes As List(Of MyNode)) As List(Of TreeNode)
        Dim treeNodes As New List(Of TreeNode)

        For Each node As MyNode In myNodes
            Dim treeNode As New TreeNode(node.Text)
            treeNode.Tag = node.Tag
            If node.Nodes.Count > 0 Then
                treeNode.Nodes.AddRange(BuildTreeNodes(node.Nodes).ToArray())
            End If
            treeNodes.Add(treeNode)
        Next

        Return treeNodes
    End Function

voor je buttons save en load

Code:
    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

        'Build our List of custom objects from our TreeView's Nodes 
        Dim myNodes = BuildMyNodes(TreeView1.Nodes)

        'Serialize object to a text file. 
        Dim objStreamWriter As New StreamWriter("C:\Testing\TreeNodes.xml")
        Dim x As New XmlSerializer(myNodes.GetType)
        x.Serialize(objStreamWriter, myNodes)
        objStreamWriter.Close()

    End Sub
    Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
        'Clear the nodes from our treeview 
        TreeView1.Nodes.Clear()

        'Deserialize text file to a new object collection. 
        Dim objStreamReader As New StreamReader("C:\Testing\TreeNodes.xml")
        Dim myNodes = New List(Of MyNode)
        Dim x As New XmlSerializer(myNodes.GetType)
        myNodes = x.Deserialize(objStreamReader)
        objStreamReader.Close()

        'Get a list of TreeNode's 
        Dim treeNodes = BuildTreeNodes(myNodes)
        'Fill our treeview with TreeNode's 
        TreeView1.Nodes.AddRange(treeNodes.ToArray())

    End Sub

en voor je eigen code
Code:
 Private Sub BtnNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNode.Click
        Dim n As String
        Dim i As Integer
        i = (i + 1) Mod 24

        n = InputBox("Voer een node in")
        If TreeView1.SelectedNode Is Nothing Then
            TreeView1.Nodes.Add(n, n, i, i)
        Else : TreeView1.SelectedNode.Nodes.Add(n, n, i, i)
        End If
    End Sub


Groete Old Hippy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan