OVH Cloud OVH Cloud

Evènement dans un TreeView

4 réponses
Avatar
Buddy
Bonsoir

Moi aller déranger vous avec mon problème alors que beaucoup vous être en
vacances ;-)

J'ai posé un magnifique treeview dans un form et j'essaye de définir des
actions en fonctions des évènements qui lui arrivent. Je n'ai eu aucun
problème pour définir TreeView_Click() mais j'ai une erreur système pour
TreeView_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)

En fait je voudrais faire apparaître un menu contextuel quand on clic droit
sur le TreeView. Ce menu évolurait en fonction de la sélection sous-jacente.

Lorsque je retire TreeView_MouseDown(...) l'erreur au chargement disparaît
et tout fonctionne à merveille.

Voilà ma sub :

Private Sub TreeView_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = acRightButton Then
MsgBox "Bouton droit", vbInformation + vbOKOnly
End If
End Sub

Si vous avez une idée sur cette erreur, soyez pas vaches et dites la moi
;-))
Merci

Buddy

4 réponses

Avatar
Raymond [mvp]
Bonsoir.

moi y en a te dire pas faire ça.

Il ne faut jamais placer l'événement mousedown et à plus forte raison
mouseup, sinon tu vas bouziller ton treeview. chaque fois que tu vas ouvrir
une branche ta procédure va se déclancher. Même si tu rajoutes des tests ce
ne sera pas fiable car il faudra tester où se trouve la souris pour accepter
le bouton droit ou non et tu vas très rapidement faire une usine à gaz. ne
pas oublier qu'un treeview n'est pas l'activex le plus facile à gérer. en
général, je dis bien en général, le mousedown est utilisé uniquement dans
le drag and drop.
si c'est pour faire un menu contextuel, inclus le dans le treeview lui-même;
il sera difficile de faire un contextuel pour chaque branche.
mais tout est possible.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Buddy" a écrit dans le message de
news:
Bonsoir

Moi aller déranger vous avec mon problème alors que beaucoup vous être en
vacances ;-)

J'ai posé un magnifique treeview dans un form et j'essaye de définir des
actions en fonctions des évènements qui lui arrivent. Je n'ai eu aucun
problème pour définir TreeView_Click() mais j'ai une erreur système pour
TreeView_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)

En fait je voudrais faire apparaître un menu contextuel quand on clic
droit

sur le TreeView. Ce menu évolurait en fonction de la sélection
sous-jacente.


Lorsque je retire TreeView_MouseDown(...) l'erreur au chargement disparaît
et tout fonctionne à merveille.

Voilà ma sub :

Private Sub TreeView_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = acRightButton Then
MsgBox "Bouton droit", vbInformation + vbOKOnly
End If
End Sub

Si vous avez une idée sur cette erreur, soyez pas vaches et dites la moi
;-))
Merci

Buddy






Avatar
Buddy
Merci Raymond

Le truc c'est que je ne comprends pas pourquoi lors du chargement du
formulaire j'ai une erreur avec MouseDown
D'après ce que tu me dis, il est tout à fait possible de gérer l'évènement
MouseDown or chez moi ça marche pas même avec 3 conneries dans l'evènement.

Merci

Buddy

"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

moi y en a te dire pas faire ça.

Il ne faut jamais placer l'événement mousedown et à plus forte raison
mouseup, sinon tu vas bouziller ton treeview. chaque fois que tu vas
ouvrir

une branche ta procédure va se déclancher. Même si tu rajoutes des tests
ce

ne sera pas fiable car il faudra tester où se trouve la souris pour
accepter

le bouton droit ou non et tu vas très rapidement faire une usine à gaz. ne
pas oublier qu'un treeview n'est pas l'activex le plus facile à gérer. en
général, je dis bien en général, le mousedown est utilisé uniquement dans
le drag and drop.
si c'est pour faire un menu contextuel, inclus le dans le treeview
lui-même;

il sera difficile de faire un contextuel pour chaque branche.
mais tout est possible.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Buddy" a écrit dans le message de
news:
Bonsoir

Moi aller déranger vous avec mon problème alors que beaucoup vous être
en


vacances ;-)

J'ai posé un magnifique treeview dans un form et j'essaye de définir des
actions en fonctions des évènements qui lui arrivent. Je n'ai eu aucun
problème pour définir TreeView_Click() mais j'ai une erreur système pour
TreeView_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As


Single)

En fait je voudrais faire apparaître un menu contextuel quand on clic
droit

sur le TreeView. Ce menu évolurait en fonction de la sélection
sous-jacente.


Lorsque je retire TreeView_MouseDown(...) l'erreur au chargement
disparaît


et tout fonctionne à merveille.

Voilà ma sub :

Private Sub TreeView_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
If Button = acRightButton Then
MsgBox "Bouton droit", vbInformation + vbOKOnly
End If
End Sub

Si vous avez une idée sur cette erreur, soyez pas vaches et dites la moi
;-))
Merci

Buddy










Avatar
Raymond [mvp]
Bonjour.

ça doit marcher, sauf si un événement précédent vient contrarier le
mousedown mais je ne vois pas bien lequel. fais une copie de ta base, place
un msgbox ou un debug.Print dans les événement du treeview pour voir l'ordre
d'apparition de ces événements et ce que tu fais dans ces événements.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Buddy" a écrit dans le message de
news:
Merci Raymond

Le truc c'est que je ne comprends pas pourquoi lors du chargement du
formulaire j'ai une erreur avec MouseDown
D'après ce que tu me dis, il est tout à fait possible de gérer l'évènement
MouseDown or chez moi ça marche pas même avec 3 conneries dans
l'evènement.


Avatar
jipidi
essaie avec long au lieu de single pour x et y ca devrit
marcher

-----Message d'origine-----
Bonsoir

Moi aller déranger vous avec mon problème alors que
beaucoup vous être en

vacances ;-)

J'ai posé un magnifique treeview dans un form et j'essaye
de définir des

actions en fonctions des évènements qui lui arrivent. Je
n'ai eu aucun

problème pour définir TreeView_Click() mais j'ai une
erreur système pour

TreeView_MouseDown(Button As Integer, Shift As Integer, X
As Single, Y As

Single)

En fait je voudrais faire apparaître un menu contextuel
quand on clic droit

sur le TreeView. Ce menu évolurait en fonction de la
sélection sous-jacente.


Lorsque je retire TreeView_MouseDown(...) l'erreur au
chargement disparaît

et tout fonctionne à merveille.

Voilà ma sub :

Private Sub TreeView_MouseDown(Button As Integer, Shift
As Integer, X As

Single, Y As Single)
If Button = acRightButton Then
MsgBox "Bouton droit", vbInformation + vbOKOnly
End If
End Sub

Si vous avez une idée sur cette erreur, soyez pas vaches
et dites la moi

;-))
Merci

Buddy




.