Tri Zone De Liste Des Articles
Donc, j'ai deux listes déroulantes. Listbox1 rassemble les fichiers d'un répertoire et j'ai un bouton ajouter pour ajouter les fichiers sélectionnés à partir de Listbox1 à Listbox2.
Est-il un moyen de trier manuellement ces articles? Peut-être qu'avec un down?
La raison pour laquelle je voudrais trier/réorganiser est que je vais avoir un processus qui va exécuter ces fichiers sélectionnés et chaque fichier devra produire une autre fichiers uniques pour le nom de fichier.
Un petit exemple serait le processus de FILE1.txt et de produire FICHIER1.pdf, etc.
Est-il un moyen plus facile d'accomplir le tri/réorganiser?
Mise à JOUR
Ici est actuellement la façon dont je suis le remplissage de mon listbox1
, avant d'ajouter quelque chose à listbox2
, qui est la zone de liste que je voudrais être triées de manière manière ou d'une autre.
Dim directoryInfo As _
New System.IO.DirectoryInfo(FolderBrowserDialog1.SelectedPath)
Dim fileInfos() As System.IO.FileInfo
fileInfos = directoryInfo.GetFiles()
For Each fileInfo As System.IO.FileInfo In fileInfos
ListBox1.DataSource = _list
_list.Add(fileInfo.Name)
_list.Sort()
Next
'Refresh Listbox1
ListBox1.DataSource = Nothing
ListBox1.DataSource = _list
- Vous devez supprimer
ListBox1.DataSource = _list
à partir de la Pour Chaque boucle. Il suffit d'actualiser la liste après la boucle est terminée etListBox1.DataSource = Nothing
n'est pas nécessaire que la première fois. Il est seulement nécessaire plus tard, afin de forcer laDataSource
à rafraîchir; sinon, lorsque vous attribuez la même liste de nouveau, il ne sera pas faire quelque chose, même si vous avez ajouté des éléments à la liste pendant ce temps. - Appel
_list.Sort()
aprèsNext
. Il n'y a pas de point dans le tri de la liste après chaque élément de plus.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la liaison de données au lieu d'ajouter les éléments un par un à la
ListBox
. Je vous suggère d'ajouter les fichiers à une liste d'abord, puis de trier la liste et attribuer à l'ListBox
'sDataSource
.Définir la liste d'un membre de la classe
De l'attribuer à l'
ListBox
Puis ajouter une entrée de la liste avec
Mise à JOUR
Si vous souhaitez mettre en place votre propre ordre de tri, puis de mettre en œuvre un
IComparer(Of String)
Alors vous pouvez trier comme ce
Mise à JOUR #2
Je ne sais pas comment vos fichiers sont nommés exactement, mais si ils finissent toujours avec
"FILE<number>.<ext>"
vous pouvez également modifier le nom de fichier pour la comparaison de chaînes de caractères comme ceci:Nom de fichier d'origine
Préparé les noms de fichiers
Maintenant la
Compare
méthode permet de déterminer le résultat tout simplement avecSort
routine a une surcharge qui accepte unIComparaer<T>
. Cela vous permet de mettre en place votre propre ordre de tri.Compare
méthode doit retourner-1
six
va de l'avanty
,0
si les deux sont égaux et+1
six
va aprèsy
. Vous pouvez ajouter le code à votre question. Mais s'il vous plaît, seulement les parties pertinentes; pas de longues listes. Si vous indenter le code en quatre espaces et de mettre une ligne vide avant et après elle, il sera formaté en tant que code automatiquement.Profiteurs Olivier réponse, peut-être un Liste Triée peut travailler pour vous?
Vous pouvez aussi utiliser le Tri pour trier les articles si vous avez besoin de plus qu'une alpha-nom de tri.
(syntaxe est peut-être éteint)