blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015
-
30 déc. 2006 à 19:51
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
31 déc. 2006 à 13:46
Slt
comment récupérer les info d'un scroll ver le haut ou vers le bas d'une listbox quand elle est remplie et possède une barre de défilement sur ca droite.
exemple si j'apuis sur la flèche en bas a droit de la listebox pour faire defilé ce qui vient en dessous. j'aimerais savoir de combien de case je suis descendu
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 30 déc. 2006 à 21:46
Bon...
C'est un dialogue de sourds !
Que ton scroll soit fait avec la molette ou autrement, un scroll est un scroll et il se traduit par le même effet !:
Il se trouve que cet effet se voit tout simplement sur la propriété TopIndex !
Si maintenant, ce que tu cherches n'est pas la valeur en nombre de lignes mais celle en unités logiques de ta form (telles que résultant de son scalemode), il te suffit d'utiliser Textheight et le nombre de lignes !
Une autre et dernière fois : quel est le but que tu cherches à atteindre ? ne me réponds pas encore une fois "connaître la valeur du scroll"... hein ! - Dis moi à quoi tu comptes utiliser cette valeur et la solution viendra tout naturellement et tout simplement ... sans doute.
Je ne reviendrai pas sur cette discussion sans cette réponse-là !
blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015 31 déc. 2006 à 11:25
ce que je veut plus precisement c'est synchronisé deux listbox. Que lorsque j'en bouge une l'autre bouge aussi . j'ai reussit a le faire avec l'aide de ma premiere reponse mais ca ne fonctionne pas quand tu utilise la molette la la deuxieme filebox ne suit plus l'autre avec ce code la:
Private Sub List_playlist_Scroll()
List1.TopIndex = List2.TopIndex
List2.TopIndex = List1.TopIndex
End Sub
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 31 déc. 2006 à 12:32
Ton bout de code survient quand le contrôle List_Playlist est "scrollé"
Et tu tentes d'ajuster 2 autres listbox
Est-ce bien ça ? Ça fait donc 3 listes à synchroniser, c'est ça ?
MPi
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 déc. 2006 à 13:32
Tout simplement :
Ne pas confondre l'événement scroll d'une listbox avec celui d'une scrollbar.
Avec une listbox : un scroll déplace, dans un sens ou dans l'autre, le topindex.
Réciproquement : toute modification du topindex se traduit, avec une listbox, par un événement scroll ...
La preuve ? La voilà :
Sur une Form : une listbox list1 et un bouron de commande command1 :
code :
Private Sub Form_Activate()
For i = 1 To 100
List1.AddItem i
Next
End Sub
Private Sub Command1_Click()
List1.TopIndex = 4 ' <<<<======= ici je définis un nouveau topindex
End Sub
Private Sub List1_Scroll()
MsgBox "scrollé !" ' <<<<======= et ça se traduit par un constat de scrolling
End Sub
Conclusion ? : ce que tu as fait avec la molette n'est pas un scroll de listbox mais autre chose .... car s'il avait modifié le topindex, celà se serait traduit par un scroll et s'il avait été un scroll de listbox, il aurait provoqué une modification du topindex ... (mutatis mutandi !)
Je te conseille donc, avant de continuer, de vérifier ce qu'a enréalité fait ton utilisation de la molette :
Fastoche : après l'avoir utilisé : msgbox list1.topindex (si pas modifié : ton scroll est tout sauf un scroll de listbox !...)
une autre fois : ne pas confondre un scroll de listbox avec celui de l'affichage d'une listbox dans un container !....
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 31 déc. 2006 à 13:44
Pour en revenir à ta molette, si tu l'utilises, la liste sera bien modifiée (vers le haut ou le bas), mais ça n'activera pas l'événement Scroll. De là l'utilisation d'API.
Et comme je disais, si tu recherches un peu sur le site, tu devrais trouver ton bonheur.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 déc. 2006 à 13:46
Rhoo....
une form :
2 listboxes list1 et list 2
un bouton de commande commande1 (dont le seul rôle sera de déplacer le topindex de list1)
un bouton de commande commande 2 (dont le seul rôle sera de déplacer le topindex de list2)
code :
Private Sub Form_Activate()
For i = 1 To 100
List1.AddItem i
List2.AddItem i & "a"
Next
End Sub
Private Sub Command1_Click()
List1.TopIndex = 4
End Sub
Private Sub Command2_Click()
List2.TopIndex = 5
End Sub
Private Sub List1_Scroll()
List2.TopIndex = List1.TopIndex
End Sub
Private Sub List2_Scroll()
List1.TopIndex = List2.TopIndex
End Sub
lance et observe un peu !
Que tu appuies sur command1 ou sur command2, les 2 listboxes se mettent "au diapason"... bien évidemment !
Or que font Command1 et command2 ? rien d'autre que de modifier le topindex de l'une ou de l'autre des 2 listboxes !!
Clair, non ? : si ton action molette modifie ce topindex (et c'est celà, le scroll d'une listbox), l'autre est forcée de suivre... clair ?