Problème avec treeview

Résolu
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005 - 15 juil. 2005 à 14:18
kromozome Messages postés 7 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 28 octobre 2005 - 18 oct. 2005 à 11:24
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
15 juil. 2005 à 19:59
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
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
18 juil. 2005 à 10:54
Merci pour le coup de pouce!
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
18 juil. 2005 à 13:41
Salut tout le monde,
C'est quoi un contrôle et comment on en crée un?
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
18 juil. 2005 à 14:08
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 juil. 2005 à 16:00
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.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 juil. 2005 à 16:10
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.
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
18 juil. 2005 à 16:27
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
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 juil. 2005 à 17:53
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.
0
cs_marquitos Messages postés 5 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 12:55
Lut all,

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

++

Kikito le rigolo
0
cs_marquitos Messages postés 5 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 28 juillet 2005
28 juil. 2005 à 12:58
Relut

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

++
0
staann Messages postés 13 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 10 août 2005
28 juil. 2005 à 14:58
salut,
oui c util si tu veux définir un noeud d'une manière unique et l'appeler une autre fois.
0
kromozome Messages postés 7 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 28 octobre 2005
18 oct. 2005 à 09:21
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
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 oct. 2005 à 10:17
Salut



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

Je pense que tu auras moins de surprises
0
kromozome Messages postés 7 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 28 octobre 2005
18 oct. 2005 à 11:24
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
0
Rejoignez-nous