web-dev-qa-db-fra.com

Comment ajouter un élément au début de la liste dans ListBox?

Existe-t-il un moyen d'ajouter un élément à un WinForms ListBox, au début de la liste sans réécrire la liste entière dans une boucle?

Une autre façon de résoudre mon problème serait d'afficher ListBox dans l'ordre inverse (dernier élément en haut) mais je ne sais pas comment le faire.

Mon contrôle ListBox est utilisé comme un visualiseur de journaux où l'entrée la plus récente doit être en haut.

23
kyrisu

Utilisez la méthode Insert sur les éléments de votre ListBox.

37
bruno conde

Si je comprends bien, ne pouvez-vous pas utiliser la méthode Insert(int index, object item)? Par exemple:

myListBox.Items.Insert(0, "First");

Cela insère "Premier" comme premier élément de la zone de liste.

28
Razzie

Une option peut consister à utiliser la méthode .Sort () de ListBox http://msdn.Microsoft.com/en-us/library/system.windows.forms.listbox.sort.aspx

L'autre est bien sûr de placer vos éléments dans une liste générique et d'ajouter/supprimer des éléments de cette liste au lieu de directement dans la ListBox. Utilisez la liste comme source de données pour votre ListBox.

1
TimothyP

Vous devriez pouvoir définir l'ordre de tri dans votre source de données si vous horodatez les événements du journal.

0
atfergs

Je n'ai aucune preuve scientifique pour me soutenir ici, mais je pense qu'une zone de texte est plus performante pour gérer la visualisation des journaux. Vous pouvez également configurer facilement le défilement automatique et si vous souhaitez copier quelque chose, il ne nécessitera aucun codage.

0
Peter