Creer un evenement click sur un noeud d'un TreeView

chico79 Messages postés 22 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 20 mai 2003 - 20 mai 2003 à 10:29
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 13 avril 2004 à 10:31
bonjour
j'aimerais savoir comment on fais pour créer une action lors
d'un click sur un noeud d'une treeview
essayant treeview_dblClick() ... ça declenche un evenement qu'on a choisi mais sur tout le corps de l'arboresence
alors que moi je cherche à mettre plusieurs evenements differents sur chaque noeud de l'arbre
merci d'avance
@+

4 réponses

cs_Base Messages postés 70 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 31 juillet 2003
20 mai 2003 à 12:04
Salut

Si c bien d'un click sur un noeud que tu veux, il faut utiliser l'événement LISTVIEW_NODECLICK, tu auras une référence NODE qui correspond au noeud cliqué... Pour le double-click il faut utiliser l'événement LISVIEW_EXPAND qui s'exécute lorsque tu ouvre un noeud (en cliquand sur la croix ou en double-cliquant sur le noeud)

L'objet NODE récupéré correspond au noeud conserné...

B@se 8-)
0
chico79 Messages postés 22 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 20 mai 2003
20 mai 2003 à 14:33
bjr

merci pour votre réponse !
oui en fait c'est l'evenement double click que je voulais
je m'explike mieux
j'ai un treeview

dim X as Node

Set X = TreeView.Nodes.Add(, , "r", Application.Server)
Set X = TreeView.Nodes.Add("r", tvwChild, "1","abra")
Set X = TreeView.Nodes.Add("r", tvwChild, "2","cadabra")
Set X = TreeView.Nodes.Add("1", tvwChild, "11","un")
Set X = TreeView.Nodes.Add("1", tvwChild, "12","deux")
Set X = TreeView.Nodes.Add("2", tvwChild, "31","trois")
Set X = TreeView.Nodes.Add("31", tvwChild, "311","quatre")

maintenant ce que je voudrais faire c'est par exemple
dans mon arbre si je clique sur le noeud "un" ou "deux" ...
je declenche un evenement
par exemple
je double clique sur "deux" et je veux que ça me declenche une action par exemple lancer un nouveau form et charger d'autres fonctions et aussi recuperer le nom du noed "deux"

merci d'avance
je compte sur vous car je suis dans la CACA
@+
0
cs_Base Messages postés 70 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 31 juillet 2003
21 mai 2003 à 12:55
Lut,

ok, c'est bien ça.... Utilise l'événement TREEVIEW_EXPAND il se déclanche l'orsque l'on clique sur la petite croix à coté du noeud ou lorsque l'on double-click sur un noeud.

Si tu veux gérer le bouton droit de la souris, je te conseil de placer le bouton cliqué dans une variable avec l'événement TREEVIEW_MOUSEDOWN (il se déclanche avant TREEVIEW_NODECLICK) et de tester de quel bouton il s'agit (grace à ta variable) lors de TREEVIEW_NODECLICK ou TREEVIEW_EXPAND

B@se 8-)
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
13 avril 2004 à 10:31
En direct de la msdn de microsoft
http://support.microsoft.com/default.aspx?kbid=162523

Data Outline Control Event TreeView Control Event
---------------------------------------------------
AfterCollapse Collapse
AfterExpand Expand
AfterFormClose <none>
AfterFormOpen <none>
AfterFormUpdate <none>
AfterMove <none>
AfterRefresh <none>
AfterRequery <none>
AfterSelChange NodeClick
AfterStartup <none>
DoKeyPress KeyPress
DoRowClick <none> (Closest events are Click and
MouseDown)
DoRowDblClick <none> (Closest event is DblClick)
Enter Enter
ErrorEvent <none>
Exit Exit
FailCollapse <none>
FailExpand <none>
FailFormOpen <none>
FailFormUpdate <none>
FailMove <none>
FailSelChange <none>
GotFocus GotFocus
KeyDown KeyDown
KeyUp KeyUp
LostFocus LostFocus
MouseDblDown <none> (Closest event is DblClick)
MouseDown MouseDown
MouseUp MouseUp
RequestCollapse <none> (Closest event is Collapse)
RequestExpand <none> (Closest event is Expand)
RequestFormOpen <none>
RequestFormUpdate <none>
RequestHelp <none>
RequestMove <none>
RequestSelChange <none>
Updated Updated
<none> AfterLabelEdit
<none> BeforeLabelEdit
<none> MouseMove
<none> OLECompleteDrag
<none> OLEDragDrop
<none> OLEDragOver
<none> OLEGiveFeedback
<none> OLESetData
<none> OLEStartDrag

donc à première vue c'est impossible.
Mais en créant une variable public
Et en affectant une action que lorsque cette valeur est paire on peut réussir à gérer le double click.
Je m'explique:

var = 0
Private Sub TreeView_NodeClick(ByVal Node As Object)
var = var + 1
if (var mod 2) = 0 then msgbox Node.text
End Sub

Bien entendu, si on veut gérer un peu mieux cela il faut faire une remise à 0 de la var si on click une fois dans un noeud et une autre fois dans un autre...

TBBUIM
0
Rejoignez-nous