Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Double clic sur un node dans un treeview

5 réponses
Avatar
rmill...
Bonjour,

Dans un Treeview il y a des nodes avec des childs. J'y ai placé un évènement DblClick.

Mon problème est le suivant.

Lorsque je double clic sur un noeud ... immédiatement ,.. si celui-ci est "Expanded" les childs se masquent ou Í  l'inverse si celui-ci n'est pas "Expanded" il le devient.

Je cherche Í  faire en sorte que lors du double clic cela ne bouge pas ou encore au minimum qu'il redevienne comme il était.

Pourriez-vous avoir une idée de comment gérer ceci? Merci Í  l'avance.

Private Sub TreeViewAvis_DblClick()

5 réponses

Avatar
MichD
Le 18/11/21 Í  16:56, a écrit :
Bonjour,
Dans un Treeview il y a des nodes avec des childs. J'y ai placé un évènement DblClick.
Mon problème est le suivant.
Lorsque je double clic sur un noeud ... immédiatement ,.. si celui-ci est "Expanded" les childs se masquent ou Í  l'inverse si celui-ci n'est pas "Expanded" il le devient.
Je cherche Í  faire en sorte que lors du double clic cela ne bouge pas ou encore au minimum qu'il redevienne comme il était.
Pourriez-vous avoir une idée de comment gérer ceci? Merci Í  l'avance.
Private Sub TreeViewAvis_DblClick()

Bonjour,
D'abord, la vraie question devrait être de définir ce que tu veux faire
avec la procédure du double-clic?
Si tu choisis cet événement, on ne peut pas intercepter l'événement, il
va avoir lieu, on ne peut pas grand-chose! Si tu as un événement Clic
pour le treeview, il va aussi se déclencher.
Le TreeView a une multitude d'événements que tu peux choisir. Est-ce que
le Double-Clic est celui qui convient le mieux pour ce dont tu veux
réaliser?
Tu as les événements "TreeView1_Collapse" et TreeView1_Expand. Ils
t'aideront Í  déterminer le statut du "noeud" et le remettre en place le
cas échéant.
Regarde ici, certains bouts de code devraient d'aider.
https://www.vbforums.com/showthread.php?17958-Prevent-a-treeview-node-to-collapse-on-double-click
MichD
Avatar
MichD
Le 20/11/21 Í  09:02, a écrit :
Je comprends. Encore merci.
Je ne savais pas cependant que le double clic sur un nœud ouvrait ou réduisait systématiquement un nœud. Je me demande bien pourquoi d'ailleurs ça le fait automatiquement. Si ça peut aider quelqu'un voici ce qui semble fonctionner pour moi. De cette façon le nœud reviens Í  l'affichage d'avant le double clic. Car ... dans ce cas le double clic fait en sorte d'accéder Í  une feuille du classeur.
On Error GoTo Fin
If UF_Treeview.TreeViewAvis.SelectedItem <> "" Then
If UF_Treeview.TreeViewAvis.SelectedItem.Expanded = True Then
'Means it was not expanded
UF_Treeview.TreeViewAvis.SelectedItem.Expanded = False
GoTo Step_Start
End If
If UF_Treeview.TreeViewAvis.SelectedItem.Expanded = False Then
'Means it was expanded
UF_Treeview.TreeViewAvis.SelectedItem.Expanded = True
GoTo Step_Start
End If
Step_Start:

Tu as essayé comme ceci :
If UF_Treeview.TreeViewAvis.SelectedItem <> "" Then
If UF_Treeview.TreeViewAvis.SelectedItem.Expanded = True Then
'Means it was not expanded
UF_Treeview.TreeViewAvis.SelectedItem.Expanded = False
Else UF_Treeview.TreeViewAvis.SelectedItem.Expanded = False Then
'Means it was expanded
UF_Treeview.TreeViewAvis.SelectedItem.Expanded = True
End If
End If
Step_Start
MichD
Avatar
rmill...
Oui c'est ce que j'avais d'abord fait ... et justement de cette façon je n'arrive pas au résultat souhaité.
Car en double cliquant ... le nœud prend expansion s'il était réduit et Í  l'inverse il se réduit s'il était expansionné.
Donc ... arrivé Í  la ligne ... If UF_Treeview.TreeViewAvis.SelectedItem <> "" Then ... cette action a déjÍ  été produite. Le double clic fait ceci.
Avatar
MichD
Le 20/11/21 Í  10:31, a écrit :
Oui c'est ce que j'avais d'abord fait ... et justement de cette façon je n'arrive pas au résultat souhaité.
Car en double cliquant ... le nœud prend expansion s'il était réduit et Í  l'inverse il se réduit s'il était expansionné.
Donc ... arrivé Í  la ligne ... If UF_Treeview.TreeViewAvis.SelectedItem <> "" Then ... cette action a déjÍ  été produite. Le double clic fait ceci.

Je pensais que tu utilisais une de ces 2 procédures événementielles
"TreeView1_Collapse" et TreeView1_Expand dans o͹ tu plaçais ta procédure.
MichD
Avatar
MichD
Le 20/11/21 Í  11:15, MichD a écrit :
Le 20/11/21 Í  10:31, a écrit :
Oui c'est ce que j'avais d'abord fait ... et justement de cette façon
je n'arrive pas au résultat souhaité.
Car en double cliquant ... le nœud prend expansion s'il était réduit
et Í  l'inverse il se réduit s'il était expansionné.
Donc ... arrivé Í  la ligne ... If
UF_Treeview.TreeViewAvis.SelectedItem <> "" Then ... cette action a
déjÍ  été produite. Le double clic fait ceci.

Je pensais que tu utilisais une de ces 2 procédures événementielles
"TreeView1_Collapse" et TreeView1_Expand dans o͹ tu plaçais ta procédure.
MichD

Je n'ai pas testé ce qui est proposé!
MichD