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

如何向DataGridView添加项并在输入后自动排序及反转行显示顺序

解决方案

你可以根据自己的使用场景选择以下任意一种实现方式:


方案1:新增行时直接插入顶部(最简单,适合逐行添加的场景)

你当前使用的Rows.Add()是将新行追加到表格末尾,要反转最终显示顺序,只需要修改行添加逻辑,把新行插到表格最顶部即可,后续单元格赋值、样式设置的代码完全不用调整:

// 把原来的 int rowID = dgTrackIDStatus.Rows.Add(); 替换为以下两行
int rowID = 0;
dgTrackIDStatus.Rows.Insert(rowID, 1);

所有行添加完成后,显示顺序就是你原有添加顺序的反转。


方案2:批量添加完成后一次性反转(适合批量导入数据后调整顺序的场景)

如果是一次性批量加完所有行之后才需要反转,直接操作行集合即可,不会修改原有行的内容和样式:

// 提取所有现有行
var rows = dgTrackIDStatus.Rows.Cast<DataGridViewRow>().ToArray();
// 清空原有行
dgTrackIDStatus.Rows.Clear();
// 反向插入行
dgTrackIDStatus.Rows.AddRange(rows.Reverse().ToArray());

方案3:数据源排序(适合绑定了DataSource的生产环境场景)

如果你的DataGridView是绑定了DataTable、List等数据源的,更推荐通过数据源排序实现,后续调整排序规则更灵活:

  1. 给数据源新增一个自增序号字段(比如AddSeq),每添加一条数据序号+1
  2. 所有数据添加完成后指定排序规则即可:
dgTrackIDStatus.Sort(dgTrackIDStatus.Columns["AddSeq"], System.ComponentModel.ListSortDirection.Descending);

注意:如果控件已绑定数据源,不要直接操作Rows集合调整顺序,会抛出异常,优先用该方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:07