Clique droit treeview

Résolu
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010 - 26 mai 2006 à 04:30
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010 - 26 mai 2006 à 15:53
Bonsoir !

J'aurai aimer pouvoir; lors du clique droit su l'un des noeu, faire apparétre un menu. (que si le clique droit a été fait sur un noeu et non sur un espace vide)
Merci de bien vouloir de donné un pti coup de pouce ;)

Clad

13 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2006 à 08:52
dans ton Treeview_Mousedown

Dim oNode as Node

Set oNode = TreeView1.HitTest ( x , y)

If Not oNode Is Nothing Then

      Msgbox oNode.Text

End If

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2006 à 13:35
tout bêtement :

oNode.Selected = True

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2006 à 14:38
Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim oNode As Node
    If Button = VbRightButton Then
      Set oNode = TreeView1.HitTest(x, y)
      If Not oNode Is Nothing Then
         If oNode.Chilrdren = 0 Then
                oNode.Selected = True
                PopupMenu mnu
         End If
      End If
   End If
End Sub

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 12:31
C'est nikel je te remerci beaucoup ;)

Je suis en train d'étudier le fonctionnement des treeview, et il ma l'aire très complet !
Jvé m'attaquer a la couleur du texte bientot :)

merci encore

Clad
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 13:19
re
en faite g encore un pti sousi !

voici le code que j'utilise :

Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim oNode As Node
Set oNode = TreeView1.HitTest(x, y)If Not oNode Is Nothing And Button 2 And clic True Then
      PopupMenu mnu
End If
End Sub

Le pb c'est que si je fait un clique droit sur un autre Child (après en avoir sélectionné un autre au paravent), il m'affiche toujour le menu pour le premier Child selectionner. Comment faire pour selectionner l'autre Child sélectionner par le pointeur et d'activer le menu ?

Clad
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 14:01
Oui effectivement c'était simple !
voici ca donne au final (si ca peut intéréser quelqu'un) :

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If Not Node Is Nothing Then
If Node.Child Is Nothing Then
clic = True
Else
clic = False
End If
End If
End Sub


Private Sub TreeView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim oNode As Node
Set oNode = TreeView1.HitTest(x, y)
Call TreeView1_NodeClick(oNode)If Not oNode Is Nothing And Button 2 And clic True Then
      oNode.Selected = True
      PopupMenu mnu
End If
End Sub

Merci a toi Renfield

Clad
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2006 à 14:08
pas compris le but du flag 'clic'

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 14:09
j'ai oublié la ptite explication de ce code :)

Alors lors d'un clique sur un enfant et que si on clique sur un enfant on affiche un menu.

Clad
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 14:14
clic permet de savoir si on a cliqué sur un parent ou un enfant

Clad
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 14:53
ben je ne sais comment te remercier ;)

ca marche nikel et c'est 10x plus simple que ce que j'avais fait :)

Merci beaucoup

ps : ptite erreur de frape : Children

Clad
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 14:58
hihi tu va dire que j'abuse mais tant que tu es là :)

Pour changer la couleur du text j'ai trouvé un system d'api SendMessageLong: le problé c'est que ca ne me change pas la couleur ! en faite ca me la change mais que lespace d'un moment, entre deux clique !
Aurai tu une idée ?
Pour info j'utilise des image ca pourai venir de ca ?

Clad
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 mai 2006 à 15:25
tout dépend de quand tu fait cet appel.
n'as tu pas la propriété ForeColor de ton objet Node ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2006 à 15:53
oui si c bon ! en faite il ny a méme pas besoin de l'api !

voici le code qui me permet de changer la couleur de tout les enfants :

Dim i As Integer

For i = 1 To TreeView1.Nodes.Count
   If TreeView1.Nodes.Item(i).Children = 1 Then
      TreeView1.Nodes.Item(i).Child.ForeColor = 12632319
   End If
Next

Mici

Clad
0
Rejoignez-nous