Tri décroissant d'une listbox [Résolu]

dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 31 oct. 2008 à 16:53 - Dernière réponse : cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention
- 2 déc. 2008 à 18:47
Bonjour,

Comment faire que qu'une listbox soit triée de façon décroissante. Par défaut, sorted=true fait un tri croissant.

Merci pour votre aide,
Afficher la suite 

9 réponses

Répondre au sujet
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 31 oct. 2008 à 18:01
+3
Utile
Bonjour,


A moins que VB.Net (que je ne connais oas) n'ait prévu un tri décroissant,

Laisse ta propriété Sorted à True puis fais en sorte que "les derniers soient les premiers"

Tu  devrais pouvoir écrire sous vb.net l'équivalent de ceci (écrit en VB6) :

ou = 0
 For i = 1 To List1.ListCount
   toto = List1.List(List1.ListCount - 1)
   List1.AddItem toto, ou
   ou = ou + 1
   List1.RemoveItem List1.ListCount - 1
 Next
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 1 nov. 2008 à 11:46
0
Utile
Le Pivert
Bonjour


Sur VB.Net  il y a un tri décroissant: Sorted: False


Pour remettre le tri croissant: Me.ListBox1.Sorted =
True
@+


 
Commenter la réponse de cs_Le Pivert
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 3 nov. 2008 à 09:21
0
Utile
La valeur False de Sorted ne fait pas de tri du tout.
Commenter la réponse de dsigmoun
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 3 nov. 2008 à 11:00
0
Utile
Le Pivert
Bonjour
Tu mets la propriété  de ta ListBox à False
Et dans le code d'ouverture:
Private

Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

Me.ListBox.Sorted =
True
End SubNormalement ta liste est décroissante

 
Commenter la réponse de cs_Le Pivert
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 3 nov. 2008 à 11:38
0
Utile
Ma listbox a bien comme propriété false.

Je mets bien Me.ListBox3.Sorted =
True
,mais le tri est toujours croissant
Commenter la réponse de dsigmoun
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 3 nov. 2008 à 11:44
0
Utile
Le Pivert
Je ne comprends pas
Essaie avec 2 boutons
Btn1: Me.ListBox3.Sorted =
True
Btn2: Me.ListBox3.Sorted =
False
Tu vois ce que cela donne
Commenter la réponse de cs_Le Pivert
dsigmoun 134 Messages postés jeudi 31 juillet 2008Date d'inscription 15 février 2011 Dernière intervention - 3 nov. 2008 à 12:16
0
Utile
Lorsque je clique sur le bouton Me.ListBox3.Sorted =
True, la listbox est trié par ordre croissant

Lorsque je clique sur le bouton Me.ListBox3.Sorted =
False, la listbox n'est modifiée sachant que la propriété est à false.

Sachant que ma listbox est une importation des fichiers d'un répertoire, la liste est par défaut croissante même sans la valeur true. J'ai donc utilisé la solution de jmfmarques

 Dim ou As Integer
        ou = 0
        For i = 0 To ListBox3.Items.Count - 1

            ListBox3.Items.Insert(ou, ListBox3.Items(ListBox3.Items.Count - 1))
            ou = ou + 1
            ListBox3.Items.RemoveAt(ListBox3.Items.Count - 1)
        Next
Commenter la réponse de dsigmoun
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 nov. 2008 à 12:19
0
Utile
Bonjour,

Je me marre....

Le Pivert : Il ne suffit pas de passer à False la propriété Sorted.
Je sais bien où tu as lu celà, mais tu n'as pas tout lu ...
Elle n'est repassée à False que pour pouvoir y remettre, dans l'ordre inverse, le résultat (gardé en tremplin) du tri croissant ...

dsigmoun :

1) tu trouveras probablement (sur ce site) ce tri qui utilises un tremplin (opération de type "triangulaire")
2) je serais étonné de ce qu'une simple adaptation pour VB.Net de ce que j'ai écrit plus haut en VB6 ne te permette d'éviter ce type de manoeuvre "triangulaire"...
Commenter la réponse de jmfmarques
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 2 déc. 2008 à 18:47
0
Utile
Le Pivert
Bonjour jmfmarques
C'est une coïncidence, j'ai juste besoin de ton code pour ma nouvelle source et je confirme ton avis car à ce moment là je voyez la chose différemment. Je te remercie car cela m'a été bien utile.
Je suis en VB2005
@+ Le Pivert
Commenter la réponse de cs_Le Pivert

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.