2009-05-04 14 views
18

Czy istnieje sposób, aby dodać element do WinForms ListBox, na początek listy bez przepisywania całej listy w pętli?Jak dodać pozycję do początku listy w ListBox?

Innym sposobem na rozwiązanie mojego problemu byłoby wyświetlenie ListBox w odwrotnej kolejności (ostatni element na górze), ale nie wiem jak to zrobić.

Moja kontrolka ListBox jest używana jako przeglądarka dziennika, gdzie najnowszy wpis powinien znajdować się na górze.

Odpowiedz

28

Użyj metody Insert na elementach swojego ListBox.

+0

Dzięki :) Widzę, że muszę się dużo nauczyć o C#: D – kyrisu

23

Jeśli dobrze rozumiem, nie możesz użyć metody Insert(int index, object item)? Na przykład:

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

Wstawia "Pierwszy" jako pierwszy element listy.

0

Powinieneś być w stanie ustawić porządek sortowania w swoim źródle danych, jeśli znacznik czasu rejestruje zdarzenia w dzienniku.

+0

Proszę dodać kod do swojej odpowiedzi –

0

Nie mam żadnego dowodu naukowego na poparcie tego, ale myślę, że pole tekstowe jest bardziej wydajne w obsłudze wizualizacji logów. Możesz także łatwo skonfigurować automatyczne przewijanie, a jeśli chcesz coś skopiować, nie wymaga to żadnego kodowania.

+0

Już rozwiązałem mój problem (przez użycie insert: P), ale tylko dla wyjaśnienia - Używam listbox, ponieważ ja Potrzebuję prostego sposobu dodawania elementów i niestandardowych kolorów dla każdej wiadomości (np. błąd, sukces itd.) i już napisałem program obsługi DrawItem dla listbox :) – kyrisu

Powiązane problemy