Как добавить элемент в начало списка в ListBox?

Есть ли способ добавить элемент в WinForms ListBox, в начало списка без перезаписи всего списка в цикле?

Другой способ решить мою проблему – отобразить ListBox в обратном порядке (последний элемент сверху), но я не знаю, как это сделать.

Мой элемент управления ListBox используется как средство просмотра журналов, где самая последняя запись должна быть сверху.

Используйте метод Insert для элементов вашего ListBox .

Если я правильно понял, не можете ли вы использовать метод Insert(int index, object item) ? Например:

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

Это вставляет «Первый» в качестве первого элемента списка.

Один из вариантов может заключаться в использовании метода .Sort () ListBox http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.sort.aspx

Другим, конечно же, является размещение ваших элементов в общем списке и добавление / удаление элементов из этого списка, а не непосредственно в ListBox. Используйте этот список в качестве источника данных для своего списка.

Вы можете установить порядок сортировки в своем источнике данных, если вы ставите отметку времени событий журнала.

У меня нет научных доказательств, чтобы поддержать меня здесь, но я думаю, что текстовое поле более эффективно в обработке визуализации журнала. Вы также можете легко настроить автопрокрутку, и если вы захотите что-то скопировать, это не потребует никакого кодирования.