Comment se servir d'une treeview?

Résolu
Signaler
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour!

jai ajouté à ma form 3 treeview mais jarrive pas à voir comment sen servir....

En fait je voudrais rajouter en fonction du fichier dune filelist, son filename ds lun des trois treeview...

comment le mettre en parent ou en children? J'ai pas réussi à trouver sur le net des liens concernant cette commande, si vous en avez n'hésitez pas!

Merci!

"j'aime bien les arbres... :-|

19 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Voila, de tête ca donne ca...

Public Function Add ( FileName as string , FilePath as string)
    if Not Treeview1.nodes ( FilePath & "" & FileName ) Is Nothing Then
           MsgBox "Noeux deja existant "
           Exit Function
    End If 
    Treeview1.Nodes.Add FilePath, tvwchild , Key:=FilePath & "" & FileName , Text:=FileName
End Function

Private Sub TreeView1_NodeClick ( Node as Node )
     Msgbox "Noeud Selectionné : " & Node.Key
End Sub
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
a = "MonFichier.ext"
a=  left$ ( a , instrrev ( a , ".")-1)


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Il faut jouer avec l'objet Nodes :

TV.Nodes.Add key:="papa" , text:="papa"
TV.Nodes.Add "papa" , tvwchild , text:="fils1"
TV.Nodes.Add "papa" , tvwchild , text:="fils2"
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Salut merci!

Comment faire pour automatiser l'ajout de node car le nom est unique et pourtant chaque click de ma command je voudrais kil majoute le fichier en surbrillance de la filelist.

Par contre y a t-il un moyen de stocker dans le noeud le fichier afin de l'utiliser comme une espèce de variable.

Parce que je voudrais réutiliser chaque node et non juste les afficher en tant que labels.

Merci !

"j'aime bien les nodes, ca me fait penser à C&C... :-|"
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu peux utiliser la propriété .Tag de tes objets Node.

la propriété Key DOIT etre unique. Cependant, elle est facultative....
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Re salut!

Bon ben, je comprends pas comment utiliser TAG pour mon cas....

J'ai vu qu'on pouvait y mettre n'importe koi mais bon, c un peu abstrait pour moi.

J'ai donc mes nodes que je rajoute au fur et à mesure et grâce à la key facultative, je remplis à volonté!

Mes questions sont les suivantes :

- comment utiliser TAG?
- comment faire pour ne pas rajouter le même fichier vu que les keys ne permettent plus de distinguer un noeud d'un autre.
- comment accéder à un noeud puisqu'il na plus de key...

Merci!

"j'aime bien les GDI... :-|
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu peux mettre le chemin dans la Key.... ;-)

le Tag !! c'est simplement Node.tag = 5
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Mais j'ai un gros problème, comme je veux me servir d'un bouton pour rajouter un fichier ou des fichiers d'une filelist dans le treeview.

Mais si je mets une key, eh ben peux plus men reservir et si je pas de key eh ben peux pas lui assigner un lien pr le retrouver...

Enfin jai l'impression detre coince..

merci!

"j'aime bien les click... :-|
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
euh.......

tu peux avoir des doublons, dans ton TreeView ?

parce que normallement :
C:\Programmes\Toto.pdf

ben, c'est unique ;)
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

je veux dire que ds ma filelist, jai une liste de fichiers et quand je clique sur mon bouton (justement appelé ADD), eh ben ledit fichier se rajoute ds le treeview.

Mais c un peu comme si je voulais faire mon marché, en choisissant un autre fichier et recliquer sur ADD.

Et aussi je voudrais pouvoir le faire à partir de la sélection de plusieurs fichiers.

C'est pourquoi, une fois que j'appuie sur ADD, il est figé si je lui mets une key et si je lui en mets pas(ce ke me permet de rajouter à foison mes fichiers... enfin juste leur nom koi...) mais du coup, c'est plus tellement intéressant vu ke ce sont que labels sans aucun lien dans le treeview. (doù le TAG?)

Voilà dc mes pbs sont :

1/ est ce ke c possible (je suppose ke oui mais avec mes connaissances...) de pouvoir assigner à chaque node un lien vers le fichier select (et aussi ds le cas multiselect.. )
2/ ne connaissant pas bien la gestion d'un treeview, comment marche les decla pr par ex gerer l'evenement click d'un node ou sa selection (en surbrillance)
3/ dans le cas ou je n'ai pas defini de key particuliere, comment à l'ajout d'un node bloquer l'ajout lorsque c le meme fichier?

merci pour le coup de main!

"j'aime po les nuages... :-(
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu souhaites ajouter tout plein de fichier dans un Treeview....

ces fichiers seront chacun un Node de l'arbre avec :
- le nom du fichier dans le .Text
- le chemin complet dans le .Key

de telle sorte, il sera possible de savoir si un noeud particulier existe, et possible également de retrouver un noeud a partir du chemin d'un fichier....

non ?
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

ouais

mais tu pourrais me montrer un exemple de decla, plize?

pour la gestion du click du node, par ex.

merci!

"j'aime bien être busy..."
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Resalut!

Comment faire pour ne pas avoir l'extension du fichier lorsque on recupere le filename?

Merci!

"j'aime bien les nuages... :-|
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

Rebonjour

merci pr ta réponse, quand j'ajoute des éléments à mon treeview, je fais des fois une multisélection. Mais le seul nom de fichier qui est rajouté est le dernier.

Comment faire pour ts les prendre en compte ds la sélection.

Que faut il modifier dans mon

importfilename:=File1.Path & "" & File1.List(File1.ListIndex)


Merci !

"j'aime bien ne pas clicker un par un... :-("
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
Il ne te faut pas utiliser la prtopriété ListIndex, qui indique l'element qui a le focus....

mais le tableau Selected

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

oui j'ai trouvé cette propriété un peu plus tard mais je me trouve devant un autre problème :

Il me prend tout mon contenu de repertoire et non la selection!

Voici mon code :

strItem = File1.List(ilist)
  If SendMessage(List1.hwnd, _
                LB_FINDSTRING, _
                 -1&, _
                 ByVal strItem) = LB_ERR Then
                 For ilist = 0 To File1.ListCount - 1
                 If (File1.Selected(ilist)) Then List1.AddItem Left$(strItem, InStrRev(strItem, ".") - 1)
                 Set mapframe1 = shapes.addbasemap(importfilename:=File1.Path & "" & strItem)
                 mapframe1.Overlays.Item(1) = Left$(strItem, InStrRev(strItem, ".") - 1)
                 Next ilist
                 Else
                 mouk = MsgBox("File Name already added!!!", vbOKOnly)
  End If


merci!

"j'aime bien les nuages... :-|
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu ne remets pas a jour strItem

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

heu c'est à dire?

c lui qui prend le selected?

:question)

dark
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
<s>rItem = File1.List(ilist)</s>
If SendMessage(List1.hwnd, _
LB_FINDSTRING, _
-1&, _
ByVal strItem) = LB_ERR Then
For ilist = 0 To File1.ListCount - 1
rItem = File1.List(ilist)
If (File1.Selected(ilist)) Then List1.AddItem Left$(strItem, InStrRev(strItem, ".") - 1)
Set mapframe1 = shapes.addbasemap(importfilename:=File1.Path & "" & strItem)
mapframe1.Overlays.Item(1) = Left$(strItem, InStrRev(strItem, ".") - 1)
Next ilist
Else
mouk = MsgBox("File Name already added!!!", vbOKOnly)
End If


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS