COPIER UN TREEVIEW

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 28 mai 2010 à 17:41
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 3 juin 2010 à 17:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51817-copier-un-treeview

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
3 juin 2010 à 17:27
autant pour moi je ne connaissais pas le MemoryStream ! merci pour l'info
cs_bigboss9 Messages postés 162 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 20 juillet 2013
3 juin 2010 à 15:27
Biensur, entre : 'Ajout de la fonction de serialisation et Return NodesSerialisés, on y placera la fonction qui déserialise le tout dans NodesSerialisés.
cs_bigboss9 Messages postés 162 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 20 juillet 2013
3 juin 2010 à 15:26
Non.

La sérialisation peut s'effectuer de 2 façons : En Binaire, ou en XML. (Le XML est le plus adapté pour ce genre de choses). Ensuite, la méthode de sérialisation peut s'effectuer de 2 façons : Soit avec un FileStream, ou bien un MemoryStream, pour ne pas avoir à écrire sur le disque. Donc pas de chemin à gérer, seulement un objet placé en mémoire et que l'on détruit lorsque l'on à fini. Pas besoin de classe :

Dim mTreeview as new TreeView
mTreeview.Nodes = CType(FunctionSerializeNodes(TreeViewSourceNodes), TreeNode)

Public Function FunctionSerializeNodes(TreeviewSource as TreeView) as Nodes

'Ajout de la fonction de serialisation

Return NodesSerialisés

End Function
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
2 juin 2010 à 16:43
oui en effet, mais cela implique un accés au HDD, et donc un nom de fichier + chemin, là c'est direct. Et tu dois tout de même transférer la treeview dans une classe ? ou au moins en créér une qui hérite de la treeview non ? @ te lire.
Note que ta proposition permet surtout de garder une trace sur le HDD au cas où, donc bonne infos en tout cas.
++
cs_bigboss9 Messages postés 162 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 20 juillet 2013
2 juin 2010 à 15:31
Plus simple encore, et fonctionnel avec TOUT type de classe : la Sérialization. Il te suffit de sérializer Nodes() et de le déserializer dans le nouveau Treeview.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
28 mai 2010 à 17:41
salut, ceci est un snippet non ?, donc ?....
Sinon une question, le byref pour la destination je comprends mais pour la source pourquoi pas un byval ?
oui je sais j'ai encore un peu de mal avec les deux ^^
++
Rejoignez-nous