排序DatagridView列后显示正确的行号[C#WinForm]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序DatagridView列后显示正确的行号[C#WinForm]相关的知识,希望对你有一定的参考价值。

我有一个DataGridView,我在其中填充数字数据。我还设法编写代码以显示Row HeaderCell属性中的行号。为此,我使用以下代码:

foreach(DataGridViewRow row in datagridview.Rows)
       row.HeaderCell.Value = (row.Index + 1).ToString();

还启用了每列的排序功能,当我单击Column HeaderCell时,该列中的数据会正确排列(排序)。但问题是甚至在排序后行号没有改变以反映原始未排序的数据。例如:

当数据加载到DataGridView上时,它看起来像这样:

  | Col1 | Col2
----------------
 1| 5    | num1
 2| 2    | num2
 3| 7    | num3

单击Col1以对DataGridView进行排序后如下所示:

  | Col1 >| Col2
----------------
 1| 2    | num2
 2| 5    | num1
 3| 7    | num3

但我希望它是这样的:

  | Col1 >| Col2
----------------
 2| 2    | num2
 1| 5    | num1
 3| 7    | num3

知道如何轻松实现这一目标吗?

答案

您应该在数据源中添加一个字段(行号)。排序后你可以做这样的事情。

foreach(DataGridViewRow row in datagridview.Rows)
   row.HeaderCell.Value = row["rownumber"].ToString();

以上是关于排序DatagridView列后显示正确的行号[C#WinForm]的主要内容,如果未能解决你的问题,请参考以下文章

winform中的datagridview的属性Columns中手动添加列后,怎么绑定数据库的数据源,语句怎么写

gridview如何动态添加列,如何在添加列后显示数据

在 DataGridView 的行标题中显示行号

DataGridView显示行号

winform中如何让datagridview自动显示行号

做了一个WinForm的程序!C#中如何在dataGridView控件中添加行号,就是在每行的最前面显示行号!