[VB6] récup élément d'une listbox

Fermé
predateur Messages postés 73 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 20 février 2008 - 7 mai 2007 à 15:10
predateur Messages postés 73 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 20 février 2008 - 7 mai 2007 à 16:27
Bonjour,

J'ai une listbox list1 qui contient plusieurs éléments par exemple:

Société
Nom
Prénom
Adresse

J'ai créé un bouton à côté Command1ToDown dans une procédure Command1ToDown.click

Maintenant j'explique ce que je veux faire.

Je sélectionne par exemple Prenom, et je clique sur le bouton Command1ToDown et celui-ci dois prend la place de Adresse et vice versa, ce qui nous donne au final

Société
Nom
Adresse
Prénom

Maintenant pour le code j'ai pensé à quelque chose comme

if command1ToDown.selected(i) = true then
command1ToDown.selected(i) = Var1
command1ToDown.selected(i+1) = Var2
command1ToDown.selected(i) = Var2
command1ToDown.selected(i+1) = Var1
end if


Le problème c'est que ca ne fonctionne pas.

Merci d'avance
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2007 à 15:37
Ton code est très bizarre.

command1ToDown d'après ce que tu dis c'est le bouton, faut donc que tu agisses sur la liste et non sur le bouton.
En fait tu retournes sur la feuille qui contient ta frame. Ensuite tu double-cliques sur le bouton. Tu arrives dans une procédure qui sera appelée lorsque l'événement clique se fera sur le bouton. Ensuite tu échanges les éléments dans list1.
0
predateur Messages postés 73 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 20 février 2008 3
7 mai 2007 à 15:46
oops, pardon

en effet, il faut remplacer les command1ToDown par list1

en faite c'est la procédure qui s'appelle Command1ToDown

Private Sub Command1ToDown_Click()


Donc maintenant je n'obtiens pas d'erreur, mais je n'observe pas de modification au moment où je clique sur le bouton
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2007 à 16:04
Tu as écris quoi dans la procédure Private sub command1ToDown_click() ??
0
predateur Messages postés 73 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 20 février 2008 3 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
7 mai 2007 à 16:05
Private Sub Command1ToDown_Click()
Dim i As Long
For i = 0 To List2.ListCount - 1
If List2.Selected(i) = True Then
List2.Selected(i) = Var1
List2.Selected(i + 1) = Var2
List2.Selected(i) = Var2
List2.Selected(i + 1) = Var1
End If
Next i
End Sub
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 mai 2007 à 16:24
Normal que ça ne marche pas.
Mets plutot dans ta procédure command1ToDown_click():

tmpIndex=List1.SelectedIndex
tmpItem = List1.SelectedItem
list1.Insert.RemoveAt(tmpIndex)
list1.Items.Insert((tmpIndex+1) mod list1.Items.Count, tmpItem)

ps : je suis pas sûr que cela marche, j'ai pas testé.
j'ai mis un mod pour modulo histoire que si c'est le dernier élément, il repassera en première position. A toi de voir
0
predateur Messages postés 73 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 20 février 2008 3
7 mai 2007 à 16:27
Okay merci pour ton code, j'ai compris ton raisonnement, je vais essayer de l'adapter.
0