You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让C++Builder中TListView按添加顺序显示内容?

解决TListView按添加顺序显示的问题

核心原因

TListView默认会按添加顺序显示条目,但如果控件开启了自动排序功能,就会覆盖原始添加顺序。常见触发自动排序的情况:

  • ListView的Sorting属性设为true
  • 某一列的SortType属性设为stText/stNumeric等非stNone值

修复步骤

1. 关闭自动排序功能

可以在设计期或代码中关闭排序相关设置:

  • 设计期操作:选中ListView,在Object Inspector中
    • 将Sorting属性改为false
    • 检查所有Columns的SortType,统一设为stNone
  • 代码初始化时添加:
ListView->Sorting = false;
for(int i=0; i<ListView->Columns->Count; i++)
{
    ListView->Columns->Items[i]->SortType = stNone;
}

2. 修正代码中的笔误

你的代码里ListItem->Caption = Cell_string;中的Cell_string未定义,应该替换为前面获取的Name_string,否则会导致Caption内容错误:

// 修正前
// ListItem->Caption = Cell_string;
// 修正后
ListItem->Caption = Name_string;

3. 使用正确的添加方式

保持使用ListView->Items->Add()方法即可,不需要用Insert(0)(后者会把新条目插在最前面,反而会倒序)。正确的添加代码:

ListItem = ListView->Items->Add();
ListItem->Caption = Name_string;
ListItem->SubItems->Add(Num_string);

额外优化建议

如果需要后续支持手动排序(点击列头排序),可以在需要时动态设置SortType,排序完成后再改回stNone,或者手动控制排序逻辑,避免自动打乱原始顺序。

内容的提问来源于stack exchange,提问作者WorldTalk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:35:16