Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Treeview et sauvegarde dans un fichoier xml

3 réponses
Avatar
E.F
Bonjour,

Pour construire un treeview j'utilise la routine :

Private Sub ConstructionDuTreeView()

Dim Départ As Integer
Dim Etape As Integer
Dim Tw_niveau_Départ As TreeNode
Dim Tw_niveau_Etape As TreeNode

Dim tmpCounter As Integer = 0

Try
Me.TreeView1.BeginUpdate()
Me.TreeView1.Nodes.Clear()
Tw_niveau_Départ = Me.TreeView1.Nodes.Add("Début processus ")

tmpCounter += 1

'add childs to first root entry
For Départ = 1 To 5

If MsgBox("On ajoute " + Départ.ToString,
MsgBoxStyle.okCancel + MsgBoxStyle.Question) = MsgBoxResult.ok Then

Tw_niveau_Départ =
Me.TreeView1.Nodes(0).Nodes.Add(Départ)
tmpCounter += 1

For Etape = 1 To 5
If MsgBox("On ajoute " + Départ.ToString + "/" +
Etape.ToString, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) =
MsgBoxResult.Yes Then
Tw_niveau_Etape =
Tw_niveau_Départ.Nodes.Add(Etape.ToString) ' + " (Index:" +
tmpCounter.ToString + ")")
tmpCounter += 1
Me.TreeView1.EndUpdate()
Else
GoTo line1
End If

Me.TreeView1.Refresh()
Me.TreeView1.ExpandAll()
Next Etape
End If
Next Départ

line1:
MsgBox("Sortie du processus")

Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

End Sub

Question : au fur et à mesure que le treeview se construit, je voudrai le
sauvegarder dans un fichier xml (pour le réafficher lors d'une prochaine
utilisation).

Comment faire ? Quelle est la méthode à employer ?

Merci pour votre attention

V.R

Ps : accessoirement j'aimerai bleuter (sélectionner) les noeuds du treeview
au fur et à mesure de leur ajout.

3 réponses

Avatar
claudetom
Voici ce que j'utilise pour sauver et recharger mon Treeview depuis un
fichier sérialisé:

Lui passer en argument, le Treeview, et le fichier à charger ou déjà contruit.
'**********************************
Sub SauveTreeView(ByVal treeView As TreeView, ByVal FileName As String) '
Dim ListeNoeuds As New ArrayList() 'instanciation de la liste
Dim fichier As IO.FileStream = IO.File.OpenWrite(FileName)
'Ouverture du fichier en écriture
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
Dim noeud As TreeNode
For Each noeud In treeView.Nodes 'ajout de chaque noeud dans la liste
ListeNoeuds.Add(noeud)
Next noeud

serializer.Serialize(fichier, ListeNoeuds) ' Serialization de la
liste dans le fichier
fichier.Close() 'Fermeture du fichier
End Sub

Private Sub ChargeTreeView(ByVal treeView As TreeView, ByVal FileName As
String)

Dim fichier As IO.FileStream = IO.File.OpenRead(FileName) 'ouverture
du fichier à charger
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
treeView.Nodes.Clear() 'efface tout les noeuds de l'arborescence

treeView.BeginUpdate() 'à mettre avant l'ajout de beaucoup de noeuds
Dim ListeNoeuds As ArrayList =
CType(serializer.Deserialize(fichier), ArrayList) 'Deserialisation dans la
liste
Dim node As TreeNode
For Each node In ListeNoeuds 'ajout de chaque noeud dans
l'arborescence
treeView.Nodes.Add(node)
Next node
End Sub
'**********************************

"E.F" a écrit :

Bonjour,

Pour construire un treeview j'utilise la routine :

Private Sub ConstructionDuTreeView()

Dim Départ As Integer
Dim Etape As Integer
Dim Tw_niveau_Départ As TreeNode
Dim Tw_niveau_Etape As TreeNode

Dim tmpCounter As Integer = 0

Try
Me.TreeView1.BeginUpdate()
Me.TreeView1.Nodes.Clear()
Tw_niveau_Départ = Me.TreeView1.Nodes.Add("Début processus ")

tmpCounter += 1

'add childs to first root entry
For Départ = 1 To 5

If MsgBox("On ajoute " + Départ.ToString,
MsgBoxStyle.okCancel + MsgBoxStyle.Question) = MsgBoxResult.ok Then

Tw_niveau_Départ =
Me.TreeView1.Nodes(0).Nodes.Add(Départ)
tmpCounter += 1

For Etape = 1 To 5
If MsgBox("On ajoute " + Départ.ToString + "/" +
Etape.ToString, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) =
MsgBoxResult.Yes Then
Tw_niveau_Etape =
Tw_niveau_Départ.Nodes.Add(Etape.ToString) ' + " (Index:" +
tmpCounter.ToString + ")")
tmpCounter += 1
Me.TreeView1.EndUpdate()
Else
GoTo line1
End If

Me.TreeView1.Refresh()
Me.TreeView1.ExpandAll()
Next Etape
End If
Next Départ

line1:
MsgBox("Sortie du processus")

Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

End Sub

Question : au fur et à mesure que le treeview se construit, je voudrai le
sauvegarder dans un fichier xml (pour le réafficher lors d'une prochaine
utilisation).

Comment faire ? Quelle est la méthode à employer ?

Merci pour votre attention

V.R

Ps : accessoirement j'aimerai bleuter (sélectionner) les noeuds du treeview
au fur et à mesure de leur ajout.





Avatar
claudetom
'oublie :
treeView.EndUpdate() 'à mettre après l'ajout

"claudetom" a écrit :

Voici ce que j'utilise pour sauver et recharger mon Treeview depuis un
fichier sérialisé:

Lui passer en argument, le Treeview, et le fichier à charger ou déjà contruit.
'**********************************
Sub SauveTreeView(ByVal treeView As TreeView, ByVal FileName As String) '
Dim ListeNoeuds As New ArrayList() 'instanciation de la liste
Dim fichier As IO.FileStream = IO.File.OpenWrite(FileName)
'Ouverture du fichier en écriture
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
Dim noeud As TreeNode
For Each noeud In treeView.Nodes 'ajout de chaque noeud dans la liste
ListeNoeuds.Add(noeud)
Next noeud

serializer.Serialize(fichier, ListeNoeuds) ' Serialization de la
liste dans le fichier
fichier.Close() 'Fermeture du fichier
End Sub

Private Sub ChargeTreeView(ByVal treeView As TreeView, ByVal FileName As
String)

Dim fichier As IO.FileStream = IO.File.OpenRead(FileName) 'ouverture
du fichier à charger
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
treeView.Nodes.Clear() 'efface tout les noeuds de l'arborescence

treeView.BeginUpdate() 'à mettre avant l'ajout de beaucoup de noeuds
Dim ListeNoeuds As ArrayList =
CType(serializer.Deserialize(fichier), ArrayList) 'Deserialisation dans la
liste
Dim node As TreeNode
For Each node In ListeNoeuds 'ajout de chaque noeud dans
l'arborescence
treeView.Nodes.Add(node)
Next node
End Sub
'**********************************

"E.F" a écrit :

> Bonjour,
>
> Pour construire un treeview j'utilise la routine :
>
> Private Sub ConstructionDuTreeView()
>
> Dim Départ As Integer
> Dim Etape As Integer
> Dim Tw_niveau_Départ As TreeNode
> Dim Tw_niveau_Etape As TreeNode
>
> Dim tmpCounter As Integer = 0
>
> Try
> Me.TreeView1.BeginUpdate()
> Me.TreeView1.Nodes.Clear()
> Tw_niveau_Départ = Me.TreeView1.Nodes.Add("Début processus ")
>
> tmpCounter += 1
>
> 'add childs to first root entry
> For Départ = 1 To 5
>
> If MsgBox("On ajoute " + Départ.ToString,
> MsgBoxStyle.okCancel + MsgBoxStyle.Question) = MsgBoxResult.ok Then
>
> Tw_niveau_Départ =
> Me.TreeView1.Nodes(0).Nodes.Add(Départ)
> tmpCounter += 1
>
> For Etape = 1 To 5
> If MsgBox("On ajoute " + Départ.ToString + "/" +
> Etape.ToString, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) =
> MsgBoxResult.Yes Then
> Tw_niveau_Etape =
> Tw_niveau_Départ.Nodes.Add(Etape.ToString) ' + " (Index:" +
> tmpCounter.ToString + ")")
> tmpCounter += 1
> Me.TreeView1.EndUpdate()
> Else
> GoTo line1
> End If
>
> Me.TreeView1.Refresh()
> Me.TreeView1.ExpandAll()
> Next Etape
> End If
> Next Départ
>
> line1:
> MsgBox("Sortie du processus")
>
> Catch ex As Exception
> MsgBox(ex.Message.ToString)
> End Try
>
> End Sub
>
> Question : au fur et à mesure que le treeview se construit, je voudrai le
> sauvegarder dans un fichier xml (pour le réafficher lors d'une prochaine
> utilisation).
>
> Comment faire ? Quelle est la méthode à employer ?
>
> Merci pour votre attention
>
> V.R
>
> Ps : accessoirement j'aimerai bleuter (sélectionner) les noeuds du treeview
> au fur et à mesure de leur ajout.
>
>
>


Avatar
E.F
Merci claudetom pour cette réponse


"claudetom" a écrit dans le message de
news:

'oublie :
treeView.EndUpdate() 'à mettre après l'ajout

"claudetom" a écrit :

Voici ce que j'utilise pour sauver et recharger mon Treeview depuis un
fichier sérialisé:

Lui passer en argument, le Treeview, et le fichier à charger ou déjÃ
contruit.
'**********************************
Sub SauveTreeView(ByVal treeView As TreeView, ByVal FileName As String) '
Dim ListeNoeuds As New ArrayList() 'instanciation de la liste
Dim fichier As IO.FileStream = IO.File.OpenWrite(FileName)
'Ouverture du fichier en écriture
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
Dim noeud As TreeNode
For Each noeud In treeView.Nodes 'ajout de chaque noeud dans la
liste
ListeNoeuds.Add(noeud)
Next noeud

serializer.Serialize(fichier, ListeNoeuds) ' Serialization de la
liste dans le fichier
fichier.Close() 'Fermeture du fichier
End Sub

Private Sub ChargeTreeView(ByVal treeView As TreeView, ByVal FileName
As
String)

Dim fichier As IO.FileStream = IO.File.OpenRead(FileName)
'ouverture
du fichier à charger
Dim serializer As New BinaryFormatter() ' instanciation du
serializeur binaire
treeView.Nodes.Clear() 'efface tout les noeuds de l'arborescence

treeView.BeginUpdate() 'Ã mettre avant l'ajout de beaucoup de
noeuds
Dim ListeNoeuds As ArrayList >> CType(serializer.Deserialize(fichier), ArrayList) 'Deserialisation dans
la
liste
Dim node As TreeNode
For Each node In ListeNoeuds 'ajout de chaque noeud dans
l'arborescence
treeView.Nodes.Add(node)
Next node
End Sub
'**********************************

"E.F" a écrit :

> Bonjour,
>
> Pour construire un treeview j'utilise la routine :
>
> Private Sub ConstructionDuTreeView()
>
> Dim Départ As Integer
> Dim Etape As Integer
> Dim Tw_niveau_Départ As TreeNode
> Dim Tw_niveau_Etape As TreeNode
>
> Dim tmpCounter As Integer = 0
>
> Try
> Me.TreeView1.BeginUpdate()
> Me.TreeView1.Nodes.Clear()
> Tw_niveau_Départ = Me.TreeView1.Nodes.Add("Début
> processus ")
>
> tmpCounter += 1
>
> 'add childs to first root entry
> For Départ = 1 To 5
>
> If MsgBox("On ajoute " + Départ.ToString,
> MsgBoxStyle.okCancel + MsgBoxStyle.Question) = MsgBoxResult.ok Then
>
> Tw_niveau_Départ >> > Me.TreeView1.Nodes(0).Nodes.Add(Départ)
> tmpCounter += 1
>
> For Etape = 1 To 5
> If MsgBox("On ajoute " + Départ.ToString + "/"
> +
> Etape.ToString, MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question) >> > MsgBoxResult.Yes Then
> Tw_niveau_Etape >> > Tw_niveau_Départ.Nodes.Add(Etape.ToString) ' + " (Index:" +
> tmpCounter.ToString + ")")
> tmpCounter += 1
> Me.TreeView1.EndUpdate()
> Else
> GoTo line1
> End If
>
> Me.TreeView1.Refresh()
> Me.TreeView1.ExpandAll()
> Next Etape
> End If
> Next Départ
>
> line1:
> MsgBox("Sortie du processus")
>
> Catch ex As Exception
> MsgBox(ex.Message.ToString)
> End Try
>
> End Sub
>
> Question : au fur et à mesure que le treeview se construit, je voudrai
> le
> sauvegarder dans un fichier xml (pour le réafficher lors d'une
> prochaine
> utilisation).
>
> Comment faire ? Quelle est la méthode à employer ?
>
> Merci pour votre attention
>
> V.R
>
> Ps : accessoirement j'aimerai bleuter (sélectionner) les noeuds du
> treeview
> au fur et à mesure de leur ajout.
>
>
>