Accueil > Forum > > > > afficher contenu treeview dan sun listview
afficher contenu treeview dan sun listview
jeudi 3 juillet 2008 à 16:14:58 |
afficher contenu treeview dan sun listview

fredoo033
|
Bonjour à tous je ne sais pas si c'est le bon endroit mais c'est celui qui me semble le mieu. je voudrai réaliser un code du style de l'explorateur windows. En fait je réalise un serveur me permettant de relever des valeurs dans des automates. Chaque automate à ses propres valeurs. voici comment je voudrai afficher les choses : Treeview : "Nom automate" |_ _ _ _ _ adresse valeur 1
|_ _ _ _ _ adresse valeur 2
|_ _ _ _ _ .......
"Nom automate 2" |_ _ _ _ _ adresse valeur 1
|_ _ _ _ _ adresse valeur 2
|_ _ _ _ _ .......
dans mon listview : quand je clique sur "Nom automate" dans le treeview je voudrai que les valeurs de "nom automate" s'affiche dans le listview. Si je clique sur "Nom automate 2" les valeurs de "nom automate 2" s'affiche et efface les valeurs précédentes. Je pense que c'est possible grace à la fonction expand du treeview. J'arrive à lire les données ce n'est pas un problème mais c'est cette gestion d'affichage quui me pose problème. J'espère avoir été clair et je remercie par avance toute les personnes qui vont m'aider.
|
|
jeudi 3 juillet 2008 à 21:27:34 |
Re : afficher contenu treeview dan sun listview

titicar
|
Réponse acceptée !
Salut, La fonction 'expand' du TreeView ne fait que afficher les enfants du parent "Nom automat X"... dans le TreeView! Un TreeView ne peut pas agir directement sur un ListView car ceux sont 2 contrôles indépendant. Pour lié un TreeView à un ListView, il faut donc écrire quelques lignes de VB pour dire : "Si l'on clique sur l'item X de TreeView, alors on affiche 'ce que l'on veut' dans un ListView". Il y a donc au moins au minimum 2 procédures à écrire : 1° et d'après le TreeView : Détecter le click (évènement NodeClick) sur l'item choisi (mémoriser les informations qu'il faut?) et appeler une procédure concernant l'affichage du ListView, au l'occurence la 2° qui suit: 2° et d'après le ListView : Traitement de l'affichage d'après les information mémorisés du TreeView. Rassure-toi, ça n'est pas bien compliqué. Je ne veux pas te donner un exemple tout fait pour tes besoins car je ne connais pas la nature de tes valeurs (NomAutomate\Valeur 1, NomAutomate\Valeur 2, etc). Si ces valeurs ne sont que des caractères alpha-numérique (type String) pas trop long, il serait peut-être intéressant de les mémoriser directement dans la propriété Key ou Tag de chaque Item du TreeView (TreeView1.Nodes(x).Tag). Dès lors, toutes les informations (adresse de chaque valeur ET sa valeur associée) sont mémorisées directement dans le TreeView. Et l'affichage dans le ListView ne dépend donc que du TreeView. titicar 
|
|
vendredi 4 juillet 2008 à 09:31:58 |
Re : afficher contenu treeview dan sun listview

fredoo033
|
Merci titicar pour ta réponse. Mais je ne vois pas comment je peut faire pour récupérer tous les noeud enfant du node sur lequel j'ai cliquer.
|
|
vendredi 4 juillet 2008 à 21:42:56 |
Re : afficher contenu treeview dan sun listview

titicar
|
Réponse acceptée !
Salut, Pour trouver tous les enfants associés à un parent, il y a plusieurs possibilités. Je vais en donner une qui fonctionne pour ton cas, mais pas pour les cas en général, du genre FileExplorer. ATTENTION : J'utilise les contrôles SP6 [Microsoft Windows Common Controls 6.0 (SP6)] concernant les TreeView, ListView, etc Je me base sur la propriété TreeView.Nodes(X).ParentEn fait, on scrute tous les nodes et l'on vérifie pour chacun d'eux si le parent correspond au node sur lequel on a cliqué. On peut faire cette vérif d'après plusieurs propriétés comme TreeView.Nodes(X) .Parent ou ' .Key' ou encore ' .FullPath'. Dans ton cas, on peut donc utiliser ' .Parent' et donc à la condition que tes "Nom automate" ne soient pas utilisés comme nom pour les enfants. De même, les enfants ne doivent pas développer des 'sous-enfant' (et devenir eux-même parents). Dans ce contexte, la recherche des enfants pourrait ressembler à ça: ' NodeParent = type String défini = node sur lequel on a cliqué For X = 1 To TreeView1.Nodes.Count If TreeView1.Nodes(X).Parent = NodeParent Then '# Ce node est un enfant de NodeParent. On l'affiche dans le ListView: '...Traitement de l'affichage dans le ListView End If Next XIl faut aussi ajouter une gestion d'erreur car dans la boucle il y a des nodes qui n'ont pas de parents ! Si tu as défini ton ListView avec 2 colonnes (Adresse Valeur et Valeur associée), la recherche des enfants et l'affichage dans le ListView ressemblerait à ça: Private Sub AfficheValeurs(ByVal NodeParent As String, myTV As TreeView, myLV As ListView) Dim X As Long Dim itmX As ListItem myLV.ListItems.Clear If NodeParent = vbNullString Then Exit Sub On Local Error GoTo ErrorAfficheValeurs 'Util au minimum dans le premier noeud car il n'a pas de parent! For X = 1 To myTV.Nodes.Count If myTV.Nodes(X).Parent = NodeParent Then '# Ce node est un enfant de NodeParent. On l'affiche dans le ListView: Set itmX = myLV.ListItems.Add(, , myTV.Nodes(X).Text) '1ère colonne = AdresseValeur itmX.SubItems(1) = "Ma valeur ..." '2ème colonne = Valeur associée '! Ou peut-être : itmX.SubItems(1) = myTV.Nodes(X).Tag '-> Si la valeur est mémo dans le tag par ex. End If AfficheValeurs_NextNode: Next X On Local Error GoTo 0 GoTo EndAfficheValeurs ErrorAfficheValeurs: Resume AfficheValeurs_NextNode EndAfficheValeurs: End SubEt l'interception du click sur le TreeView serait: Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) AfficheValeurs Node.Text, TreeView1, ListView1 End Sub
Pour le test, Ouvrir un nouveau projet, avec Form1 par défaut. Copier les 2 sub privées ci-dessus et ajouter: Private Sub Form_Load() '# Version des contrôles utilisés: '- TreeView et ListView : Microsoft Windows Common Controls 6.0 (SP6) '# Positions et dimensions des objets: Form1.Width = 8715: Form1.Height = 4335 TreeView1.Width = 2895: TreeView1.Height = 2895 TreeView1.Left = 120: TreeView1.Top = 120 ListView1.Width = 5295: ListView1.Height = 2895 ListView1.Left = 3120: ListView1.Top = 120 '# Initialisation de TreeView1: Dim TopNode As Node, NodX As Node With TreeView1 .LineStyle = tvwRootLines 'Affiche le '+' à gauche .Indentation = 250 'Décalage des enfants par rapport aux parents .LabelEdit = tvwManual 'Interdit la modification manuelle des noms des Nodes .Nodes.Clear .Sorted = True Set TopNode = .Nodes.Add(, , , "Nom automate1") 'Création d'un nouveau Parent Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 1.1") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 1.2") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 1.3") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 1.4") Set TopNode = .Nodes.Add(, , , "Nom automate2") 'Création d'un nouveau Parent Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 2.1") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 2.2") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 2.3") Set NodX = .Nodes.Add(TopNode, tvwChild, , "AdresseValeur 2.4") Set TopNode = .Nodes.Add(, , , "Nom automate3 (vide)") 'Création d'un nouveau Parent End With '# Initialisation du ListView1: With ListView1 .View = lvwReport '(=3) Mode Détail avec plusieurs colonnes .FullRowSelect = True 'Sélectionne toute la ligne .LabelEdit = tvwManual 'Interdit la modification manuelle des lignes .ColumnHeaders.Clear 'Efface toutes les lignes .ColumnHeaders.Add , , "AdresseValeur", 2000 'Ajoute une nouvelle colonne .ColumnHeaders.Add , , "Valeur", 2000 'Ajoute une nouvelle colonne End With End Subtiticar 
|
|
lundi 7 juillet 2008 à 09:19:08 |
Re : afficher contenu treeview dan sun listview

fredoo033
|
Un grand merci à toi titicar ca fonctionne très bien. encore enorme merci à toi j'en demandé pas tant.
|
|
lundi 7 juillet 2008 à 18:50:06 |
Re : afficher contenu treeview dan sun listview

titicar
|
Pas de quoi, ravis que ça puisse t'aider ;-) titicar 
|
|
Cette discussion est classée dans : listview, valeurs, treeview, adresse, automate
Répondre à ce message
Sujets en rapport avec ce message
Affichage dans treeview et listview de la liste des fichiers d'une adresse ftp [ par Anthomicro ]
Bonjour,j'aimerais savoir si il existe un code me permettant de recevoir la liste des répertoires et des fichiers qui sont dans une adresse ftp et d'a
aide sur les treeview et listview [ par guillaume ]
Bonjour,je suis débutant et je cherche à faire cela :Du coté gauche, un treeview dans lequel je trouve le poste de travial avec tous mes lecteurs, que
Récupérer les valeurs d'un champ [ par BSide ]
Bonjour,j'ouvre une BD en utilisant ADO.L'objectif est de faire apparaître dans un treeview la structure de la base (tables + champs : ca c'est ok) ai
redimensionnement d'un contrôle [ par brisky ]
salut à tous,j'aimerais savoir comment redimentionner un treeview et un listview à l'exécution. comme dans l'explorateur windows, quand on se met entr
popup menu dans listview ou treeview en VBA [ par reman ]
Salut à tous,Je n'arrive pas à créer un popup sur un item d'une listview ou d'un treeview. Je débute, alors si quelqu'un pouvait m'aider en me donnant
popup & listview ou treeview [ par reman ]
please help,peut on faire des popup dans des controles treeview ou listview ? et en VBA. J'y arrive pômerci
Problèmes multiples avec les listview [ par nruiz ]
Bonjour a tous et bonne année :) g qq problèmes avec les listview si une ame charitable pouvait m'aider :)))1-comment mettre un des éléments en gras d
DragDrop entre listview et treeview [ par David2410 ]
Bonjour, J'aimerais pouvoir faire un drag and drop depuis un listview et un dossier dans un treeview. Malheureusement, je n'arrive pas à activer le tr
ListVieW et TreeView [ par godlistrom ]
J'aimerais avoir de l'aide pour créer un Tree View efficace en Access 97. J'ai essayer avec OCX CTREEVIEWmais je ne sais acunement travaillé avec!Pou
Copie de fichiers (drag drop) d'un listview vers un treeview [ par xiya ]
Comment effectuer les fonctions de copier coller (répertoires et fichiers) comme sous l'explorateur de windows avec un treeview et un listview.? Merci
Livres en rapport
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|