如何将项目添加到 ListBox 中列表的开头?

Posted

技术标签:

【中文标题】如何将项目添加到 ListBox 中列表的开头?【英文标题】:How to add item to the beginning of the list in ListBox? 【发布时间】:2010-10-23 14:57:32 【问题描述】:

有没有一种方法可以将项目添加到 WinForms 列表框,添加到列表的开头,而无需在循环中重写整个列表?

解决我的问题的其他方法是以相反的顺序显示 ListBox(顶部的最后一项),但我不知道该怎么做。

我的 ListBox 控件用作日志查看器,其中最近的条目应位于顶部。

【问题讨论】:

【参考方案1】:

ListBox 的项目使用Insert 方法。

【讨论】:

【参考方案2】:

如果我理解正确,你不能使用Insert(int index, object item) 方法吗?例如:

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

这会插入“First”作为列表框的第一项。

【讨论】:

【参考方案3】:

一种选择可能是使用 ListBox 的 .Sort() 方法 http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.sort.aspx

当然,另一个是将您的项目放在通用列表中并添加/删除项目 从该列表而不是直接到 ListBox。将列表用作 ListBox 的数据源。

【讨论】:

【参考方案4】:

如果您为日志事件添加时间戳,您应该能够在数据源中设置排序顺序。

【讨论】:

【参考方案5】:

我没有科学证据支持我,但我认为文本框在处理日志可视化方面性能更高。 您还可以轻松设置自动滚动,如果您想复制某些内容,则不需要任何编码。

【讨论】:

我已经解决了我的问题(通过使用插入:P)但只是为了澄清 - 我正在使用列表框,因为我需要一种简单的方法来为每条消息添加项目和自定义颜色(如错误,成功等等),我已经为列表框编写了 DrawItem 处理程序:)

以上是关于如何将项目添加到 ListBox 中列表的开头?的主要内容,如果未能解决你的问题,请参考以下文章

VBA中如何使用ListBox控件呢?

如何检测是不是将项目添加到 ListBox(或 CheckedListBox)控件

从 tkinter.Listbox 中提取项目列表

在列表框项目之间添加文本

如何将项目添加到列表框?

WPF开发为按钮提供添加,删除和重新排列ListBox内容的功能