如何在VB.NET窗体运行时实现ListBox项按输入时间逆序排列
解决VB.NET ListBox新项置顶的问题
不需要依赖系统自带的排序方法,直接通过插入位置控制就能实现你要的效果:
- 新增内容时,不要用
ListBox1.Items.Add(新内容),改用ListBox1.Items.Insert(0, 新内容)- 这个方法会把新内容直接插入到列表的索引0位置(也就是第一行),原有所有项会自动向后移位,天然形成「最晚输入在前、最早输入在后」的顺序
如果是已经有历史内容的列表,需要先调整现有项的顺序,再按上述方式新增:
' 将现有项倒序排列 Dim reversedItems = ListBox1.Items.Cast(Of String).Reverse().ToList() ' 清空原列表 ListBox1.Items.Clear() ' 重新添加倒序后的项 For Each item In reversedItems ListBox1.Items.Add(item) Next ' 后续新增项统一用 Insert(0, 新内容)
注意:务必保持ListBox1.Sorted = False,开启这个属性会触发系统自动排序,完全违背你的需求。
内容的提问来源于stack exchange,提问作者Si Si
相关产品推荐
相关产品推荐

