Comment avoir l'évènement clic d'un noeud de treeview?

Résolu
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007 - 26 juil. 2007 à 16:13
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007 - 1 août 2007 à 16:57
Bonjour à Tous,
Quelqu'un peut-il m'aider!Je remplis mon treeview avec les données qui viennent des tables sqlserver en différents nodes,exemple
Dexia
     ---FR
     ---EN
     ---GER
Fortis
     ---FR
     ---EN
     ---GER
              ---Allemagne
             ----Berlin
Je veux avoir le résultat dans ma listbox en cliquant sur FR sous Dexia,ou n'importe quel noeud de treeview.
Bien à vous.
A voir également:

14 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 août 2007 à 06:39
tu veux le texte du noeud que tu as cliqué ?
ou le texte du 'grand-père' ?

partant d'un noeud, tu peux avoir tous les noeuds qui lui sont relatifs...
http://msdn2.microsoft.com/en-us/library/system.windows.forms.treenode.parent(VS.80).aspx

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 16:21
encore une question qui trouve sa réponse dans la Doc...
(que personne ne lit ?)

http://msdn2.microsoft.com/en-us/library/system.windows.forms.treeview_members(VS.71).aspx

TreeView Members
Public Events:
BeforeSelect => Occurs before the tree node is selected.
AfterSelect => Occurs after the tree node is selected.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 16:23
après, si tu es en 2005, tu as même :

NodeMouseClick => Occurs when the user clicks a TreeNode with the mouse.

mais je pense qu'il vaudrais mieux que tu utilises AfterSelect...
(parce que si tu utilises BeforeSelect et que ton traitement est long, ca va donner l'impression de ramer : l'item ne sera visuellement séléctionné qu'a al fin de ton traitement)
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
26 juil. 2007 à 16:44
J'ai essayé ça ne répond pas à mon bésoin,en fait,j'ai déjà un treeview que j'ai rempli avec une requête sql,en récuperant le nom du noeud parent que je passe à ma requête comme paramétre ainsi je peux avoir la clé primaire du noeud root mais le problème se pose au niveau des noeuds enfants,comment avoir l'évènement clic de chaque noeud enfant?
Bien à vous.
0

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

Posez votre question
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
26 juil. 2007 à 16:48
Voici le bout de code qui me permet de sélectionner un noeud:
 

Private
Sub TreeView1_NodeMouseClick(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.TreeNodeMouseClickEventArgs)
Handles TreeView1.NodeMouseClick

Dim Node
As TreeNode

Dim ind
As
IntegerNode = TreeView1.GetNodeAt(

New System.Drawing.Point(e.X, e.Y))

If e.Button = Windows.Forms.MouseButtons.Left
ThenTreeView1.SelectedNode = Node

End if
End
Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 17:02
NodeMouseClick

a pourtant un nom très très evocateur, non ?

en quoi
TreeView1.SelectedNode = Node

est-elle une action de la souris ?
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
26 juil. 2007 à 23:54
Je remplis mon treeview avec les données qui viennent de mes tables,si je clic sur un noeud parent,je récupère le nom et je le passe comme paramétre dans la réquête pour avoir sa clé primaire et ainsi faire d'autres manipulations.
J'aimerais clic cette fois ci sur un noeud enfant et avoir sa clé primaire.Chaque fois que je clic sur noeud il met dans ma variable le contenu du noeud sélectionné et ça fausse le résultat.
Quelqu'un a-t-il une solution svp?
123
    ---1
    --- 2
   ----3
           -----1
           -----2
321
   ----1
   -----2
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juil. 2007 à 23:56
tu peux acceder a tous les noeuds, selectionnés ou non ...

ou se trouve cette clé primaire ? faut il passer par le noeud parent ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
27 juil. 2007 à 08:23
Chaque noeud correspond à une colonne de mes tables,et en sélectionnant  le noeud,j'ai le contenu text du noeud que je passe comme paramétre à ma réquête pour rétrouver la clé primaire dans la table.J'aimerai ainsi pour chaque sélection d'un noeud.Comment faire ça?Si vous avez un exemple ça sera plus facile pour moi.
Bien à vous.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juil. 2007 à 14:33
t'as pas un peu finit de poster ton message encore et encore ?

tout ton code précedent peut se résumer en :

Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
If e.Button = Windows.Forms.MouseButtons.Left Then
TreeView1.SelectedNode = e.Node
End If
End Sub

pour ta question, manipules tout simplement
e.Node pour faire ta requete...

si chaque noeud est une colonne, reste a trouver le noeud qui correspond a la clé primaire...
quel est ce noeud par rapport au noeud selectionné ? le noeud père ? un des noeuds "frêres" (de même niveau) ?


réponds aux questions que l'on te pose, pour tenter de résoudre ton soucis, c'est bien plus utile que de reposter encore et toujours le même blabla.
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
27 juil. 2007 à 15:40
Merci quand même d'avoir répondu,j'avais déjà trouvé la solution.Si on écrit le message sur ce forum,c'est parceque nous avons un problème.Il n'appartient pas à un individu de dire n'importe quoi sur ce message,si tu ne veux pas répondre ne le fais pas,personne ne t'oblige de le faire.
a+
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
31 juil. 2007 à 09:31
J'ai un noeud parent,puis deux noeuds frères et chaque noeud frère a des fils aussi.J'aimerais cliquer sur un noeud fils d'un de frères par exmple et avoir son text.Tout comme je pourrais cliquer sur un des frères ou parent pour avoir leur contenu.Comment faire en vb.net svp?
Bien à vous.
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
1 août 2007 à 10:02
Merci ça marche,j'ai du modifier juste un truc et ça va.Merci infinement!!!!!
0
Musau Messages postés 18 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 3 octobre 2007
1 août 2007 à 16:57
Je réviens encore car il me manque un pétit pas pour arriver au bout de mon treeview.Jusque là,quand je clique sur un noeud parent puis sur le fils,je stocke les textes du parent et celui de child dans mes variables.Quand je clic sur le pétit fils,je perd le text de son grand parent que j'avais dans ma variable,et je réçois le text de son père dans la variable où j'avais stocké le text du grand parent,et la variable du pétit fils prend la place de son père.Pouvez m'aider svp?
Bien à vous.
0
Rejoignez-nous