begin process at 2012 02 10 22:08:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > COPIE DE TREEVIEW

COPIE DE TREEVIEW


 Information sur la source

Note :
5,75 / 10 - par 4 personnes
5,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Débutant Date de création :17/05/2002 Date de mise à jour :17/05/2002 13:27:40 Vu :4 841

Auteur : acidburn23

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Ce code permet de copier l'arborescence d'un treeview dans un autre treeview.  

Source

  • Public Function Copier(Menu_P As TreeView, MenuTree_P As TreeView) As TreeView
  • Dim i%
  • Dim Node_L As Node
  • Dim chaine As String
  • For i = 1 To MenuTree_P.Nodes.Count
  • If (i = 1) Then
  • Set Node_L = Menu_P.Nodes.Add(, , MenuTree_P.Nodes(i).Key, MenuTree_P.Nodes(i).text, MenuTree_P.Nodes(i).Image, MenuTree_P.Nodes(i).SelectedImage)
  • Set Node_L = MenuTree_P.Nodes(i)
  • Else
  • chaine = groupe.TreeView1.Nodes(i).Parent.Key 'groupe est le nom de la form, chaine recupere la cle du parent afin de créer ses fils
  • Set Node_L = Menu_P.Nodes.Add(chaine, tvwChild, MenuTree_P.Nodes(i).Key, MenuTree_P.Nodes(i).text, MenuTree_P.Nodes(i).Image, MenuTree_P.Nodes(i).SelectedImage)
  • Set Node_L = MenuTree_P.Nodes(i)
  • End If
  • Next i
  • End Function
  • 'Ne pas oublié de bien initialiser les ImageList des treeviews.
Public Function Copier(Menu_P As TreeView, MenuTree_P As TreeView) As TreeView

Dim i%
Dim Node_L As Node
Dim chaine As String

    For i = 1 To MenuTree_P.Nodes.Count

    If (i = 1) Then
       Set Node_L = Menu_P.Nodes.Add(, , MenuTree_P.Nodes(i).Key, MenuTree_P.Nodes(i).text, MenuTree_P.Nodes(i).Image, MenuTree_P.Nodes(i).SelectedImage)

       Set Node_L = MenuTree_P.Nodes(i)
    Else
      chaine = groupe.TreeView1.Nodes(i).Parent.Key  'groupe est le nom de la form, chaine recupere la cle du parent afin de créer ses fils
        
      Set Node_L = Menu_P.Nodes.Add(chaine, tvwChild, MenuTree_P.Nodes(i).Key, MenuTree_P.Nodes(i).text, MenuTree_P.Nodes(i).Image, MenuTree_P.Nodes(i).SelectedImage)

       Set Node_L = MenuTree_P.Nodes(i)
    
   End If
    Next i

End Function

'Ne pas oublié de bien initialiser les ImageList des treeviews.  

 Conclusion

Pour ma part, ce code est insérer dans un module mais il fonctionne très bien à l'intérieur d'une form.  
Pour l'appel de la fonction:

Call Copier (TreeView1,TreeView2)  TreeView1 est l'arbre de destination et TreeView2 la source


 Sources du même auteur

COPIE DE TREEVIEW AVEC SAUVEGARDE DANS UN FICHIER TEXTE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

Commentaires et avis

Commentaire de Mercury le 17/05/2002 13:59:06

Il ne manque plus qu'une fonction d'export du contenu du Treeview vers un fichier texte, et c'est parfait ;-) 8/10

Commentaire de NoFutur le 13/02/2004 18:48:40

Excellent 10/10, c'est tout ce q'il me fallait :o)

Commentaire de Ammoniak le 22/01/2006 08:06:17

4/10 parce que le principe est à peu près correct, mais:
- code non portable à cause de "chaine = groupe.TreeView1.Nodes(i).Parent.Key" (si on met deux TreeViews appelés T1 et T2, TreeView1 devient un identificateur inconnu -> erreur)
- déclaration d'un objet pas nécessaire dans ton code: "Dim Node_L As Node"
- manipulation de cet objet sans raison (tu lui affecte une valeur que tu n'utilise pas)
- ce code ne marche que pour un arbre simple avec un seul noeud racine

Commentaire de Ammoniak le 22/01/2006 08:14:14

Je te propose une version un peu épurée de ton code (seul ma quatrième remarque n'est pas corrigée -> à toi de voir ;)
J'ajoute que la déclaration de ta chaine était aussi abusive (elle représente un objet auquel on peut accéder facilement)
De plus, il est plus commun de donner la source avant la destination lors d'une copie

Voilà ma proposition:
Public Function Copier(ByRef Source As TreeView, ByRef Destination As TreeView) As TreeView
Dim i As Integer
Dim tmpNode As Node

Destination.ImageList = Source.ImageList
For i = 1 To Source.Nodes.Count
    If (i = 1) Then
        Set tmpNode = Destination.Nodes.Add(, , Source.Nodes(i).Key, Source.Nodes(i).Text, Source.Nodes(i).Image, Source.Nodes(i).SelectedImage)
        Set tmpNode = Source.Nodes(i)
    Else
        Set tmpNode = Destination.Nodes.Add(Source.Nodes(i).Parent.Key, tvwChild, Source.Nodes(i).Key, Source.Nodes(i).Text, Source.Nodes(i).Image, Source.Nodes(i).SelectedImage)
        Set tmpNode = Source.Nodes(i)
    End If
Next i
End Function

Commentaire de Ammoniak le 22/01/2006 08:24:28

Désolé, je me suis trompé. Voici la bonne solution (à mon avis).
Celle-ci prend en charge plusieurs noeuds racines.
Une autre remarque sur ton code: tu as fais une "Function" qui ne renvoit rien, il faut la transformer en une "Sub".


Public Sub Copier(ByRef Source As TreeView, ByRef Destination As TreeView)
Dim i As Integer

Destination.ImageList = Source.ImageList
For i = 1 To Source.Nodes.Count
    If Source.Nodes(i).Parent Is Nothing Then
        Destination.Nodes.Add , , Source.Nodes(i).Key, Source.Nodes(i).Text, Source.Nodes(i).Image, Source.Nodes(i).SelectedImage
    Else
        Destination.Nodes.Add Source.Nodes(i).Parent.Key, tvwChild, Source.Nodes(i).Key, Source.Nodes(i).Text, Source.Nodes(i).Image, Source.Nodes(i).SelectedImage
    End If
Next i
End Sub

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,683 sec (3)

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