IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Mouse Move sur un TreeView [VBA]


Sujet :

VBA

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Mouse Move sur un TreeView [VBA]
    Bonjour a tous,

    Je souhaiterais utiliser un control de type TreeView dans une Userform de vba. J'ai reussi a creer mon treeview et a le remplir. Maintenant je m'interesse particulierement aux events. En fait je voudrais que lorsque je passe la souris sur l'un des items du treeview, celui-ci se mette en surbrillance. En faisant quelques recherches, je suis tombe sur les proprietes ou methodes telles que DropHighLight ou encore HitTest. Mon probleme est que j'ai essaye plusieurs codes qui semblent fonctionner mais ne renvoie rien lors du hittest alors que pourtant ma souris est bien au dessus d'un des item du treeview:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub TreeView_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As OLE_XPOS_PIXELS, ByVal Y As OLE_YPOS_PIXELS)
     
        Dim nodTemp As Node
        Dim strText As String
     
        If Button = 0 Then
     
            Set nodTemp = TreeView.HitTest(X, Y)
     
            If Not nodTemp Is Nothing Then
                strText = nodTemp.Text
            Else
                strText = "Nothing"
            End If
            Me.Caption = "X=" & X & " Y=" & Y & " " & strText
        End If
     
    End Sub
    En parallele, j'ai aussi recherche de l'aide sur le site de Microsoft mais lorsque j'essaie le code suivant (similaire en quelque sorte a ce que je voudrais faire), il ne fonctionne pas (erreur de multiples natures qui apparaissent)

    Origine : http://msdn.microsoft.com/en-us/libr...=vs.60%29.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    ' Declare global variables.
    Dim indrag As Boolean ' Flag that signals a Drag Drop operation.
    Dim nodX As Object ' Item that is being dragged.
     
    Private Sub Form_Load()
       ' Load a bitmap into an Imagelist control.
       Dim imgX As ListImage
       Dim BitmapPath As String
       BitmapPath = "icons\mail\mail01a.ico" ' Change to a valid path.
       Set imgX = imagelist1.ListImages.Add(, , LoadPicture(BitmapPath))
     
       ' Initialize TreeView control and create several nodes.
       TreeView1.ImageList = imagelist1
       Dim nodX As Node   ' Create a tree.
       Set nodX = TreeView1.Nodes.Add(, , , "Parent1", 1)
       Set nodX = TreeView1.Nodes.Add(, , , "Parent2", 1)
       Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Child 1", 1)
       Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Child 2", 1)
       Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Child 3", 1)
       Set nodX = TreeView1.Nodes.Add(2, tvwChild, , "Child 4", 1)
       Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Child 5", 1)
       nodX.EnsureVisible ' Expand tree to show all nodes.
    End Sub
     
    Private Sub TreeView1_MouseDown_
    (Button As Integer, Shift As Integer, x As Single, y As Single)
       Set nodX = TreeView1.SelectedItem ' Set the item being dragged.
    End Sub
     
    Private Sub TreeView1_MouseMove _
    (Button As Integer, Shift As Integer, x As Single, y As Single)
       If Button = vbLeftButton Then ' Signal a Drag operation.
          indrag = True ' Set the flag to true.
          ' Set the drag icon with the CreateDragImage method.
          TreeView1.DragIcon = TreeView1.SelectedItem.CreateDragImage
          TreeView1.Drag vbBeginDrag ' Drag operation.
       End If
    End Sub
     
    Private Sub TreeView1_DragDrop_ 
    (Source As Control, x As Single, y As Single)
       If TreeView1.DropHighlight Is Nothing Then
          Set TreeView1.DropHighlight = Nothing
          indrag = False
          Exit Sub
       Else
          If nodX = TreeView1.DropHighlight Then Exit Sub
          Cls
          Print nodX.Text & " dropped on " & TreeView1.DropHighlight.Text
          Set TreeView1.DropHighlight = Nothing
          indrag = False
       End If
    End Sub
     
    Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
       If indrag = True Then
          ' Set DropHighlight to the mouse's coordinates.
          Set TreeView1.DropHighlight = TreeView1.HitTest(x, y)
       End If
    End Sub

    Voila, si quelqu'un a deja rencontre un probleme similaire je suis preneur.

    Merci d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 35
    Points : 55
    Points
    55
    Par défaut Attention aux unités!
    Salut,

    le HitTest ne prend la même unité de position que ce que te renvoi le mouse_mouve!

    tu peux regarder sur le site suivant :

    site avec début de solution, je l'ai testé mais ce n'est pas encore pile poile syncro!

    +
    Power Tree - Complément Excel
    www.xl-powertree.com
    Analysez et consolidez vos tableaux Excel

Discussions similaires

  1. [VBA-Excel] Question sur les Treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/12/2006, 16h21
  2. Questions sur le Treeview
    Par ZbergK dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/11/2005, 09h40
  3. focus sur un TreeView
    Par steph_1 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/11/2005, 13h50
  4. [Treeview VBA] Liste des fils à partir d'un noeud donné
    Par NoCoZ dans le forum Général VBA
    Réponses: 3
    Dernier message: 26/04/2005, 09h15
  5. [C#] Clic droit sur un TreeView
    Par whilecoyote dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/03/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo