ComboBox Inverser

AReS097 Messages postés 24 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 14 janvier 2021 - 11 mai 2011 à 12:01
 Utilisateur anonyme - 13 mai 2011 à 21:08
Bonjour a tous,

Voila je pense que mon probleme est pas compliquer, mais j'ai chercher et pas trouver la solution.

Pour remplir une ComboBox a partir du contenue d'un dossier j'utilise le script suivant:

#
ComboReference.Items.Clear()
For Each CibleDirectory As String In My.Computer.FileSystem.GetFiles(RepReseau & "\Base_registre\Reference", FileIO.SearchOption.SearchTopLevelOnly)
ListageDirectory = My.Computer.FileSystem.GetName(CibleDirectory)
Me.ComboReference.Items.Add(ListageDirectory)
Next
#

Cette solution marche mais me donne le contenue dans l’ordre Alphabétique ou du plus petit au plus grand, qu'est ce que je doit modifier pour avoir le contenue dans le sens inverse de celui de l'alphabet ou du plus grand au plus petit ?

Merci d'avance pour votre aide

2 réponses

Utilisateur anonyme
13 mai 2011 à 12:48
Bonjour,
Tu dois avoir un parametre Sorted sur ta comboBox, il faut le mettre à false, pour être sur, ensuite je serai toi je mettrai tout d'abord mes "ListageDirectory" dans un tableau et ensuite j'ajouterai les elements de mon tableau en commencant par le fin.

Cette solution est un peu "brutale", il y a peut être une option "SORT" aussi dans "My.Computer.FileSystem.GetFiles" mais je ne l'ai pas utilisé plus que ça cette commande...
0
Utilisateur anonyme
13 mai 2011 à 21:08
Bonsoir,
A toi d'implémenter un objet IComparer qui te permettra de trier une liste à ta convenance selon ce qu'il renvoie lors de la comparaison :
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'création de la liste des fichiers à chercher
        Dim liste() As IO.FileInfo = New IO.DirectoryInfo("c:").GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)
        'tri de la liste dans l'ordre inverse (voir classe clsSorter)
        Array.Sort(liste, New clsSorter)
        'remplissage de la combo
        For Each element As IO.FileInfo In liste
            ComboReference.Items.Add(element.Name)
        Next
    End Sub

    Public Class clsSorter
        Implements IComparer

        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
            If x.ToString.ToLower > y.ToString.ToLower Then
                Return -1
            ElseIf x.ToString.ToLower = y.ToString.ToLower Then
                Return 0
            Else
                Return 1
            End If
        End Function
    End Class

Bonne nuit.
0
Rejoignez-nous