Creer un evenement click sur un noeud d'un TreeView
chico79
Messages postés22Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention20 mai 2003
-
20 mai 2003 à 10:29
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDerniè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
@+
cs_Base
Messages postés70Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention31 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é...
chico79
Messages postés22Date d'inscriptionlundi 29 juillet 2002StatutMembreDernière intervention20 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
@+
cs_Base
Messages postés70Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention31 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
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...