Récupérer la valeur d'un listbox par le Scrollbar [Résolu]

Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
- 24 juil. 2009 à 18:45 - Dernière réponse :
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
- 25 juil. 2009 à 17:34
Bonsoir à tous

je suis à la recherche d'une méthode me permettant de récupérer la valeur de mon listbox en sachant que je ne me sers que du Scrollbar

J'ai un listbox qui contient 5 valeurs (de 0 à 4). Et lorsque je clique sur le scrollbar (flèche haut ou flèche bas), je voudrais récupérer la valeur qui s'affiche dans le listbox.

Mon soucis est que c'est la première valeur qui sort par défaut à chaque fois.

La seule instruction qui à l'air de réagir au mouvement du scrollbar est la suivante

Private Sub ListRegroup_MouseCaptureChanged(ByVal sender As Object, ByVal e As System.EventArgs)

Je ne sais pas si c'est la bonne ?...

Merci par avance pour toute votre aide

PhilouVB
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
25 juil. 2009 à 02:33
3
Merci
Salut Philouvb

MouseCaptureChanged d'après les renseignements sur MSDN servirait à indiquer si un contrôle gagne ou perd la possibilité d'être manipulé avec la souris ( un peu comme le Gotfocus et Lostfocus de VB 6.0)
C'est ce que j'ai compris d'après la documentation anglaise de MSDN

Pour ton problème ( d'après ce que j'ai compris) il faudrait utiliser une listbox sans scrollbar et un scrollbar indépendant ( 2 contrôles en fait)
La scrollbar indépendante te donnerait le numéro de ligne de la listbox et il te resterait à afficher la listbox à partir de cette ligne

Un exemple : soit les numéros de 1 à 100 et la listbox qui affiche 10 lignes. La srollbar indépendante a sa plage de valeurss de 1 à 100. Si Scrollbar.value vaut 20 par exemple tu affiche dans ta listbox les lignes 20 à 29 et si Scrollbar.value vaut 57 tu affiches de 57 à 66 ( soit 10 lignes)
il faudra peut-être remplir d'abord un tableau de toutes les valeurs que peut contenir la listbox si celle-ci était scrollable mais l'astuce est qu'il ne faut pas qu'elle le soit

j'ai utilisé cette technique plusieurs fois dans les projets "Acces Direct Disque" où j'affichais les secteurs d'un disque dur en héxa-Ascii ( une zone de texte sans scrollbar qui contient le secteur et une scrollbar qui me sélectionne le secteur à afficher)

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain

Merci cs_Galain 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Galain
Meilleure réponse
Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Dernière intervention
25 juillet 2009
25 juil. 2009 à 16:20
3
Merci
Bonjour,

j'ai testé ça, ça a l'air de fonctionner pour donner l'index de l'item affiché en haut de la liste (0 = premier item):

i = - ListBox1.GetItemRectangle(0).Top \ ListBox1.GetItemHeight(0)

ensuite, pour récupérer la valeur associée :

ListBox1.Items(i)

peut-être que ça peut t'aider...

Merci phila38 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de phila38
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Dernière intervention
3 octobre 2010
25 juil. 2009 à 17:34
0
Merci
Merci pour tout, je teste tout ça ce week end

PhilouVB
Commenter la réponse de cs_PHILOUVB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.