Problème avec treeview

Résolu
Signaler
Messages postés
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005
-
Messages postés
7
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
28 octobre 2005
-
Bonjour,
mon travail consiste à mettre en palc un arbre et à chaque fois qu'on appuie sur un noeud de cet arbre, une requête de sélection est exécutée.
je commence à utiliser treeview. Pour commencer j'ai téléchargé qq exemples pour voir. j'ai un message du genre: "the msdn connection does not exist"
Qu'est ce que ça veut dire?
Sinon, pour voir le code derrière ce que j'ai téléchargé et l'exploiter, j'ai du mal. Comment faut il procéder? il faut créer une "form", créer des zones où on veut afficher les treeview et leurs détailes et écrire le code associé à exécuter si on sélectionne ces objets?
svp de l'aide, ça me bloque!
Si qq peut me donner un mode d'emploi, du genre comment procéder grosso modo, c'est super sympa!

14 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut,



Pour MSDN c'est j'ai un probleme d'aide qui n'est pas installer sur la machine d'apres moi.



Pour le treeview tu deposses un controle treeview sur la form.



Dans le load de la form

Tu parametre le treeview

les images sont dans il imagelist



exemple de paramétres (extrait d'un progrmme sans modification)



'initialisation du contrôle treeview

tvwNavig.Indentation = 10

tvwNavig.Font.Size = 11

tvwNavig.LabelEdit = tvwManual

tvwNavig.LineStyle = tvwRootLines

tvwNavig.Style = tvwTreelinesPictureText

tvwNavig.Sorted = True

tvwNavig.ImageList = ImageTreeview



'efface l'arbre précedent

tvwNavig.Nodes.Clear



Set rsThemes = gDBForum.OpenRecordset("THEME", dbOpenDynaset)



Do Until rsThemes.EOF

'remplissage des themes

Set mNode = Main.tvwNavig.Nodes.Add(, tvwNext)

mNode.Text = rsThemes!nom_theme



mNode.Tag = "Themes"

mNode.Key = CInt(rsThemes!numero_theme) & "ID"

mNode.Image = "Closed"

i = theme_vide(mNode.Key)

intIndex = mNode.Index

strSQL "Select * From MESSAGE Where numero_theme" & _


rsThemes!numero_theme & ";"

'Parcours de la table message pour remplir les themes

Set rsMessages = gDBForum.OpenRecordset(strSQL)



Do Until rsMessages.EOF

'ajout d'un noeud enfant

Set mNode = Main.tvwNavig.Nodes.Add(intIndex, tvwChild)

'ecriture des titres des messages

mNode.Text = rsMessages!titre

mNode.Key = CInt(rsMessages!numero_message) & "ID2"

mNode.Tag = "Messages"

mNode.Image = "Message"

rsMessages.MoveNext

Loop

rsThemes.MoveNext

Loop

rsMessages.Close

rsThemes.Close

End Sub



Ici tu as le charegement d'un arbre avec noeud themes et feuilles messages.

Utilises le tag pour savoir sur quels noeds tu es.



Private Sub tvwNavig_NodeClick(ByVal node As MSComctlLib.node)

Dim requete As Recordset

'*******************************

'gestion des images du Treeview

'*******************************

Select Case node.Tag

Case "Themes"

.....





Voila je pense qu'avec ce cours rapide tu peux nous faire un tres beau treeview and happy Coding.
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
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005

Merci pour le coup de pouce!
Messages postés
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005

Salut tout le monde,
C'est quoi un contrôle et comment on en crée un?
Messages postés
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005

désolée, je débute, mais je suis qd meme content des premiers résultats.
J'ai récupéré un bout de code pour assurer mes débuts avec treeview et j'ai cette ligne de code :
lvwObjets.ListItems.Add , "E" & RSObjets![Procedure_Id], RSObjets![Procedure_Theme], "IMG_" & RSObjets![Department_Id]

La partie de code en rose donne l'icone qu'il faut afficher à ce que j'ai compris et j'aimerais bien la changer: ou est ce que je peux trouver les possibilités de choix.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut



Cette ligne ci ne me semble pas pouur les treeview mais pour les listes listview.

Je ne comprends pas pourquoi tu n'utilises pas le code présenté si dessus.



Select Case node.Tag

Case "Themes"



If node.Image = "Closed" Then

node.Image = "Open"

node.Expanded = True

Else

node.Image = "Closed"

node.Expanded = False

End If

End Select



Pour chnanges les imges, desfois ca plante ne n'est jamais compris pourquoi.



Le fichier reste ouvert alors ue le noeud est fermé et inversement



Private Sub tvwNavig_MouseUp(Button As Integer, _


Shift As Integer, x As Single, y As Single)

If Button = vbRightButton Then

Set gnode = tvwNavig.HitTest(x, y)

If Not gnode Is Nothing Then

Select Case gnode.Tag

Case "Themes"

Main.mnuOuvrir.Visible = True

Main.mnuRenommer.Visible = True

Main.mnuSupprimer.Visible = True

gnode.Expanded = False

gnode.Image = "Closed"

PopupMenu mnuArbre

Case "Messages"

Main.mnuOuvrir.Visible = False

Main.mnuRenommer.Visible = False

Main.mnuSupprimer.Visible = True

PopupMenu mnuArbre, , x, y

End Select

End If

End If

End Sub



Ce code ci puet servir si tu veux gerer des menus sur l'arbre.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Pour les controles Que veux tu faire.



Pour des controles utilisateur.

Il suffit de mettre des controles sur uen forme et ensuite d'inserer le control sur une autre forme.



Exemple un controle adresse

A une ville, un CP, une rue , un numero de rue.

Tu mets donc 4 textbox et tu met des accessuers (propietes au valeur des champs)



Et tu auras le meme comportement et presentation pour toute les adresses de ton application.

Exemple le test ville + CP obligatoire est codé dans le usercontrole.



V'est comme un controle Windows, c'est un union de controles, ou une modification de controle.

Par exemple tu peux faire un controle textboxCB qui teste si la clé RIB est bonne.

La tu n'a qu'un controle, les possibilités sont illimités (utilisation
des API ou de code VB) Regardes sur le site et tu en trouvera. pleins.



Exemple sur des sites il est propose de mettre une image en arriere plan des treeview chose non réalisable sans API.

Une fois le controle OK. il peut etre mis partout dans l'appli.



Esperant etre clair.
Messages postés
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005

Je n'ai pas très bien compris pour les contrôles:
J'ai réussi à afficher un arbre traduisant l'organigramme stocké dans ma base de données.
En fait quand je navigue dans mon arbre, j'ai envie d'afficher les détails se reportant à chaque noeud que je sélectionne dans un textbox( ces informations sont recupérées dans la base de données liée à l'arbre)
Au début j'allais écrire une procédure événementielle pour controler ce champs mais à ce qu'il parait on put utiliser un controle lié au textbox
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Moi ce que j'ai fait dans cetre application je stocke la clé primaire dans la key du Node



mNode.Key = CInt(rsThemes!numero_theme) & "ID"



Apres il me reste plus que a supprimé "ID" pour avoir le numero.

Et faire un select dessus la key.

C'est que j'avais fais a l'epoque il y a plus de 4 ans.



Pour les controles que veux tu?

J'ai du mal a comprends ta question.
Messages postés
5
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
28 juillet 2005

Lut all,

Juste pour dire que l'exemple ci dessus m'a bcp aidé.

++

Kikito le rigolo
Messages postés
5
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
28 juillet 2005

Relut

Est-ce vraiment util de définir une clé pour les treeview?

++
Messages postés
13
Date d'inscription
mercredi 13 juillet 2005
Statut
Membre
Dernière intervention
10 août 2005

salut,
oui c util si tu veux définir un noeud d'une manière unique et l'appeler une autre fois.
Messages postés
7
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
28 octobre 2005

Bonjour ,

Est-ce quelqu'un voudrais un peu développer l'utilisation des images ?

J'ai mis ces lignes là :

'assignation de la liste d'image ou imagelist est objet listimage déposé sur ma forme
TreeView1.ImageList = ImageList

NodX.SelectedImage = ImageList.ListImages.Item(1).Index
NodX.ExpandedImage = ImageList.ListImages.Item(1).Index
NodX.Image = ImageList.ListImages.Item(1).Index

Mais mon image n'apparait pas :( . C'est un.ico que j'ai mis dans ma liste d'image

Merci pour votre aide :)

KROMOZOME
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut



Utilises les keys des images au lieu des numeros d'images

Je pense que tu auras moins de surprises
Messages postés
7
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
28 octobre 2005

Merci pour ton aide , mais en fait, je n'ai pas encore bien compris toutes les subtilités du VB (Je débute ;)

en fait c'est la propriété style de mon treeview qui n'avait pas la bonne valeur pour afficher des images. :(

KROMOZOME