Listbox

blackcatthc Messages postés 86 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 1 avril 2015 - 30 déc. 2006 à 19:51
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 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

29 réponses

blackcatthc Messages postés 86 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 1 avril 2015
30 déc. 2006 à 21:31
oui c'es bien ca j'veut recupéré l'info lors d'un scroll avec la roulette. sinon merci quand même.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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à !
0
blackcatthc Messages postés 86 Date d'inscription jeudi 4 mars 2004 Statut Membre Derniè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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 !....

Mais bon ....continuons....
0
blackcatthc Messages postés 86 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 1 avril 2015
31 déc. 2006 à 13:34
oup's dsl. encore fait une erreur .

Private Sub List1_Scroll()
 List1.TopIndex = List2.TopIndex
 List2.TopIndex = List1.TopIndex
End Sub

je veut que quand j'utilise la molette  dans le premier le deuxiemme bouge aussi le mouvement du premier
0
blackcatthc Messages postés 86 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 1 avril 2015
31 déc. 2006 à 13:36
oué ce que tu dit est sans doute vrai mais bon j'suis qu'un noob en vb6. j'comprend pas encore tres bien ce que je fait
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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.

MPi
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 ?
0
Rejoignez-nous