[VB.NET] retrouver les index des éléments selectionnés dans un listbox

Résolu
FrakTaLiTe Messages postés 18 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 11 juillet 2006 - 29 avril 2005 à 18:18
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 3 mai 2005 à 01:35
tout est dans le titre ce doit etre easy mais j'y arrive po.
j'ai un listbox et plusieurs éléments à l'intérieur
je fait une selection et je voudrais déplacer ces élément de 1 unité vers le haut lorsque je clique sur un bouton. comment dois-je m'y prendre?
A voir également:

4 réponses

alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
29 avril 2005 à 20:53
l'ensemble des index selectionné est listé dans la collection :

listbox1.selectedindices



maintenant, si tu veux déplacer un élément d'index i d'un cran vers le haut, il te faudra sans doute un truc du genre :

sub monter(i as integer)

if i=0 then exit sub



dim tx as string

tx = listbox1.items.item(i)

listbox1.items.removeat(i)

listbox1.items.insert(i-1,tx)

listbox1.selectedindices.add(i-1)

end sub

à quelque chose près...



J'espère que c'est ce que tu cherches.

AlicVB
3
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
1 mai 2005 à 01:56
Pourais-tu être un peu plus précis...

Si tu as un Listbox avec 10 éléments

et que tu veux déplacer les éléments 4,5,6,9 d'un cran vers le haut, ça veut dire

que tu veux que ces éléments deviennent les 3,4,5,8 ...

et que l'ancien élément 3 devienne 7

et l'ancien 8 le 10

... c'est ça

Soit plus explicite si tu déplace vers le haut que deviennent les éléments remplacé, ils sont effacés, poussés vers le bas?
0
FrakTaLiTe Messages postés 18 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 11 juillet 2006
1 mai 2005 à 20:05
oui c tout-à-fait ca ;)
0
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
3 mai 2005 à 01:35
Code à mettre dans la procédure appelante du bouton...

Dim prov
As
String



Dim inn
As
Integer



Dim tab
As
New ArrayList


tab.AddRange(ListBox1.SelectedIndices)
' je mets tous les indices sélectionnés dans un tableau



For
Each inn
In tab



If inn > 0
Then
' l'opération ne s'execute que si l'élément en cours est plus grand que zéro, car si il est zéro, lui demander de monter créé une erreur


prov = ListBox1.Items.Item(inn - 1)
' on met dans une variable provisoire l'élément qui va être remplacé


ListBox1.Items.Item(inn - 1) = ListBox1.Items.Item(inn)
' on remplace l'élément en question par le suivant


ListBox1.Items.Item(inn) = prov
' et on donne la valeur provisoire à l'élément (ce qui le fait déscendre)



End
If



Next

Si tu as des questions sur le code? Est-ce bien ça que tu voulais?
0
Rejoignez-nous