begin process at 2010 02 10 12:13:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.NET

 > SERIALIZER UNE ARBORESCENCE TREEVIEW

SERIALIZER UNE ARBORESCENCE TREEVIEW


 Information sur la source

Note :
8,83 / 10 - par 6 personnes
8,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.NET Source .NET ( DotNet ) Classé sous :serialiser, serialisation, treeview Niveau :Initié Date de création :23/09/2005 Date de mise à jour :26/10/2005 10:00:40 Vu :13 645

Auteur : poppyto

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note


 Description

Bonjour, j'ai dernièrement voulu sérialiser les Nodes d'une Treeview et je suis tombé sur un sujet assez épineux. En effet la classe TreeNodeCollection (qui contient des objets TreeNode)  ne se sérialize pas, et encore moins en Xml. Du coup, j'ai rusé en sauvegardant tous les noeuds dans un ArrayList(eq Vector), car la classe TreeNode est sérializable et la classe ArrayList aussi !

Source

  • using System.Runtime.Serialization.Formatters.Binary;
  • using System.Runtime.Serialization;
  • private void SauveTreeView(TreeView treeView, string FileName)
  • {
  • ArrayList ListeNoeuds = new ArrayList(); //instanciation de la liste
  • FileStream fichier = File.OpenWrite(FileName); //Ouverture du fichier en écriture
  • BinaryFormatter serializer = new BinaryFormatter(); // instanciation du serializeur binaire
  • foreach (TreeNode noeud in (treeView.Nodes)) //ajout de chaque noeud dans la liste
  • {
  • ListeNoeuds.Add(noeud);
  • }
  • serializer.Serialize(fichier, ListeNoeuds); // Serialization de la liste dans le fichier
  • fichier.Close(); //Fermeture du fichier
  • }
  • private void ChargeTreeView(TreeView treeView, string FileName)
  • {
  • FileStream fichier = File.OpenRead(FileName); //ouverture du fichier à charger
  • BinaryFormatter serializer = 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
  • ArrayList ListeNoeuds = (ArrayList)serializer.Deserialize(fichier); //Deserialisation dans la liste
  • foreach (TreeNode node in ListeNoeuds) //ajout de chaque noeud dans l'arborescence
  • {
  • treeView.Nodes.Add(node);
  • }
  • treeView.EndUpdate(); //à mettre après l'ajout
  • fichier.Close(); //Fermeture du fichier
  • }
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;


private void SauveTreeView(TreeView treeView, string FileName)
{
     ArrayList ListeNoeuds = new ArrayList();  //instanciation de la liste
     FileStream fichier = File.OpenWrite(FileName); //Ouverture du fichier en écriture

     BinaryFormatter serializer = new BinaryFormatter(); // instanciation du serializeur binaire

     foreach (TreeNode noeud in (treeView.Nodes)) //ajout de chaque noeud dans la liste
     {
          ListeNoeuds.Add(noeud);
     }

     serializer.Serialize(fichier, ListeNoeuds); // Serialization de la liste dans le fichier
     fichier.Close(); //Fermeture du fichier
}

private void ChargeTreeView(TreeView treeView, string FileName)
{

     FileStream fichier = File.OpenRead(FileName); //ouverture du fichier à charger
     BinaryFormatter serializer = 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

     ArrayList ListeNoeuds = (ArrayList)serializer.Deserialize(fichier); //Deserialisation dans la liste

     foreach (TreeNode node in ListeNoeuds) //ajout de chaque noeud dans l'arborescence
     {
          treeView.Nodes.Add(node);
     }

     treeView.EndUpdate(); //à mettre après l'ajout
     fichier.Close(); //Fermeture du fichier

}



 Historique

26 octobre 2005 09:59:17 :
Problème de syntaxe
26 octobre 2005 10:00:40 :
Ajout des namespaces

 Sources du même auteur

Source .NET (Dotnet) OBTENIR LE PID PARENT D'UN PROCESSUS
Source avec une capture Source .NET (Dotnet) INTERFACE WEB SANS WINFORMS
Source .NET (Dotnet) TRANSFORMATION XSLT EN .NET 2.0

 Sources de la même categorie

Source avec Zip CHAT SERVER-CLIENT par abderrahmenbilog
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMULATION DE CONSOLE POUR WINDOWS MOBILE par originalcompo
Source avec Zip Source .NET (Dotnet) BASE DE DONNÉES EN XML par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) RECHERCHE ET GESTION DE FICHIERS PERSONNALISÉES par JeremyLecouvert
Source avec Zip Source .NET (Dotnet) DESSINER EN XML par Yxion
Source avec Zip Source avec une capture Source .NET (Dotnet) XML LOADER par damned3
Source .NET (Dotnet) XML VERS TREENODE / TREENODE VERS XML par ip2x
Source avec Zip Source avec une capture Source .NET (Dotnet) TOURS DE HANOI par jimmy007

Commentaires et avis

Commentaire de sebmafate le 24/09/2005 10:49:58 administrateur CS

fallait y penser ;)

Commentaire de poppyto le 24/09/2005 11:42:32 administrateur CS

Héhé oui surtout que j'avais vraiment pas envie de faire une sauvegarde à "l'ancienne" en recréant l'arbre dans un fichier texte sniff.
Je t'enverrai le soft la semaine prochaine Seb, ça peut t'intéresser :). D'ailleurs je me suis servis de tes tutos pour faire des contrôles utilisateur 8).

Commentaire de sebmafate le 24/09/2005 12:14:59 administrateur CS

c'est donc toi qui m'a lu :p
j'attends ton soft avec impatience ;)

Commentaire de poppyto le 24/09/2005 12:20:06 administrateur CS

lol "l'unique" lecteur ! C'est une mise à jour en .net du soft qui est sur mon site pour faire les cours (en C++). Je me suis amusé à faire les contrôles utilisateurs car c'est bien balaise de pouvoir voir le rendu dans VS, et surtout le nombre de ligne de code est divisé par 10 :-)

Commentaire de Lutinore le 25/09/2005 07:47:51 administrateur CS

Pour charger un fichier XML dans un TreeView y'a cette source qui est sympa: http://www.csharpfr.com/code.aspx?ID=30683

Commentaire de poppyto le 25/09/2005 13:54:10 administrateur CS

Elle est sympa mais il manque quand même la fonction pour sauvegarder ;)

Commentaire de gazza le 26/09/2005 01:06:40

Bonsoir tout le monde, je serais aussi initeressé pour le soft si jamais tu peux me l'envoyé aussi... ou le publié sur se site avec les sources... se serait trop sympa... merci d'avance...
a+

Commentaire de claudetom le 19/12/2006 16:53:41

Ce code est pas mal pour la restitution et la sauvegarde de l'ensemble d'un treeview.

Mais à l'utilisation j'ai quand même un souci, il ne restitue pas les bonnes icones attachées aux nodes :
Dans mon cas j'ai plusieurs groupes de nodes avec sur chacun des groupes une icone de couleurs différentes, a la restitution tout les groupes ont la même icone en l'occurrence la 1ere icone du premier groupe ?

Commentaire de poppyto le 19/12/2006 17:11:05 administrateur CS

(pas testé)Il ne devrait pas y avoir de soucis, est-ce que la propriété ImageIndex est restituée (TreeNode) ?
En tout cas la sérialization l'enregistre...(reflector)

Commentaire de surfzoid le 17/04/2008 19:16:55

Marche plutôt nickel, mais question, ont peut sérialiser dans du XML ou du texte, plutôt que du binaire ?

Commentaire de poppyto le 17/04/2008 19:46:47 administrateur CS

Essaye de voir avec la classe XmlSerializer ^^

Commentaire de surfzoid le 18/04/2008 09:25:07

Merci.

Commentaire de TsukiShiro le 15/05/2008 09:23:58 9/10

Salut poppyto merci pour t'as source. je débute en vb.net et ça m'as beaucoup aidé à piger la sérialisation.

J'ai trouvé la traduction vb.net de ta source (même les commentaires sont les mêmes xD)mais voila, seul les nom des noeuds sont sauvé ainsi que les relations parent/enfant, je ne retrouve pas le .tag du treeview dans le fichier bin.
A la désérialisation j'ai donc des noeuds vides avec juste un nom =(.

J'ignore si cela vient du langage ou d'autre chose merci d'avance de votre aide.

Commentaire de poppyto le 15/05/2008 10:22:26 administrateur CS

Il faut que l'objet dans .tag soit serializable ( this.userData.GetType().IsSerializable ) et faire le nécessaire s'il ne l'est pas...

Commentaire de TsukiShiro le 15/05/2008 10:41:41

heu ouai j'ai pas mis <sérializable> devant -_- l'erreure...
Heuresement que je suis débutant sinon j'me le pardonnerait pas xD
Merci beaucoup sa à bien l'air de marcher =)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

TreeView : selection multiple [ par rintchu ] Salut,est il possible dans un treeview de selectionner plusierus noeud a la fois en restant appuyer sur la touche control par exemple.QQn peut il m'ai scrollbar treeview [ par chessandmat ] Bonjour,J'ai un treeview scrollable mais je n'arrive pas a recuperer la valeur de ce scrollbar.Comment faire ?Merci d'avance Treeview [ par streetlife ] J'ai un réèl problème avec un composant treeview si quelqu'un pouvait jetter un coup d'oeil j'ai laisser mon problème en tant que source C#:http://www Comment remplir un treeview avec base de données ? [ par shadowgirl ] Salut à tous, J'ai une application à faire avec un treeview.Ce treeview je voudrais le remplir avec des données qui se trouvent dans ma base de donnée insérer un tableau en tant que treenode d'un treeview [ par benkawet ] Voila sa fait deja plusieurs jours que je cherche une réponse ... mais toujours rien trouvé .J'utilise Visual Studio pour creer une page .aspx en util Recherche aide ou code pour gestion d'un Treeview [ par shadowgirl ] Salut à tous, Je cherche quelqu'un qui pourrait m'aider ou me passer du code pour gérer un Treeview, avec la classe Treeview. (Expand, selected ....) Treeview et Scrollbar [ par tchoucky ] Bonjour,j'ai un petit problème avec une barre de defilement gérée automatiquement dans un treeview. En effet, la barre horizontale est presente, on ne probléme sélection node dans un treeview en C# [ par rifi ] J'ai créé un TreeView avec différents nodes, monprobléme et que je souhaite sélectionner un des Nodes lorsque je clique sur un bouton. mais je n'ai t Treeview et défilement [ par tchoucky ] Salut,j'aimerais savoir comment gérer le défilement d'un treeview lors d'un drag and drop.En effet, comment atteindre un noeud qui n'est pas visible c attribut node de treeview [ par Ryang ] Je cherche comment recuperer le nom de chaque node dans un treeview, pour pouroir en selectionner un selon un nom que l'on pourrait entrer dans un tex


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales