Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2007, 15h56   #1
Invité de passage
 
Inscription : mars 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 9
Points : 4
Points : 4
Par défaut [Fait]Menu contextuel sur un TreeView

Bonjour,

Je voulais savoir s'il est possible de gérer des menus contextuels différents sur un TreeView? en fonction du node, est-ce qu'il est possible d'afficher une menu contextuel spécifique?

Merci.
Racob
Racob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 13h05   #2
En attente de confirmation mail
 
Inscription : février 2005
Messages : 1 731
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : février 2005
Messages : 1 731
Points : 2 010
Points : 2 010
Bonjour,
Citation:
Envoyé par Racob Voir le message
Je voulais savoir s'il est possible de gérer des menus contextuels différents sur un TreeView? en fonction du node, est-ce qu'il est possible d'afficher une menu contextuel spécifique?
Cette piste est praticable.

Pour ma part, j'obtiens ce genre de chose en le programmant en VBA.
Le contrôle TreeView peut déclencher l'exécution de procédure événementielle qui lui sont propres (elles ne sont pas listées dans la fenêtre des propriétés, et il faut passer par l'IDE de VB pour les programmer).

J'utilise les procédures événementielles _MouseUp et _MouseDown du contrôle TreeView, avec un menu popup Office que je crée et paramètre en fonction du node pointé par la souris.
_
=JBO= est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 23h13   #3
Invité de passage
 
Inscription : mars 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 9
Points : 4
Points : 4
Par défaut contextuel sur un TreeView

Merci JBO,

Y-at-il un moyen de me filer le code pour voir à quoi cela ressemble?

Il n'existe aucun autre moyen interne à Access pour gérer les menu contextuels en fonction du treeView?

merci.
Racob
Racob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 02h20   #4
En attente de confirmation mail
 
Inscription : février 2005
Messages : 1 731
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : février 2005
Messages : 1 731
Points : 2 010
Points : 2 010
Citation:
Envoyé par Racob Voir le message
Y-at-il un moyen de me filer le code pour voir à quoi cela ressemble?
Voici le code que j'utilise pour piloter l'action clic droit sur un node d'un contrôle TreeView nommé TV.
Code VB :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
' Si Clic à droite + Node visé, appliquer l'effet DropHighlight sur le Node pointé
'
Private Sub TV_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
 
    ' Il peut n'y avoir aucun objet sous la souris
    If Button = vbKeyRButton Then
        Set TV.DropHighlight = TV.HitTest(X, Y)
    Else
        Set TV.DropHighlight = Nothing
    End If
 
End Sub
 
' Si la souris est déplacée et que le bouton droit n'est pas enfoncé,
' alors annuler l'effet DropHighlight.
'
Private Sub TV_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
    Screen.MousePointer = 0
    If Not (TV.DropHighlight Is Nothing) And Button <> vbKeyRButton Then
        ' Le Node est "abandonné"
        Set TV.DropHighlight = Nothing
    End If
End Sub
 
' Si Bouton droit est relâché et Node pointé est le même que celui référencé par DropHighLight,
' alors configurer et afficher un menu PopUp.
' Puis annuler l'effet DropHighlight.
'
Private Sub TV_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Long, ByVal Y As Long)
 
    Dim oNode As MSComctlLib.Node, p As Parametrage
 
    If Button = vbKeyRButton Then
        Set oNode = TV.HitTest(X, Y)
 
	' vérifier qu'un Node est effectivement pointé et que c'est celui de l'événement _MouseDown
        If Not (oNode Is Nothing) Then
            If Not (TV.DropHighlight Is Nothing) Then
                If oNode = TV.DropHighlight Then
                    ' placer ici le code de paramétrage et d'ouverture du menu contextuel
                    ...
                End If
            End If
        End If
    End If
 
    Set TV.DropHighlight = Nothing
End Sub

Citation:
Envoyé par Racob Voir le message
Il n'existe aucun autre moyen interne à Access pour gérer les menu contextuels en fonction du treeView?
A ma connaissance non.
Le contrôle TreeView n'est pas un contrôle natif d'Access. Par conséquent, il ne dispose d'aucune prise en charge particulière.
_
=JBO= est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h45.


 
 
 
 
Partenaires

Hébergement Web