首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

DataGridView是C# WinForm中常用的控件之一,用于显示和编辑数据。当对DataGridView的列进行排序后,行号可能会发生变化,需要重新显示正确的行号。

为了实现对DataGridView列排序后显示正确的行号,可以通过以下步骤进行操作:

  1. 获取当前排序的列和排序方式:可以使用DataGridView的Sort方法来实现列排序,通过获取排序的列和排序方式,可以在排序后重新显示正确的行号。
  2. 清空DataGridView的行号:可以通过遍历DataGridView的所有行,将行号列的值设置为空,清空当前的行号。
  3. 重新计算并显示正确的行号:通过遍历DataGridView的所有行,根据排序后的顺序重新计算行号,并将计算后的行号显示在行号列中。

下面是一个示例代码,演示了如何实现对DataGridView列排序后显示正确的行号:

代码语言:csharp
复制
// 获取当前排序的列和排序方式
DataGridViewColumn sortedColumn = dataGridView.SortedColumn;
SortOrder sortOrder = dataGridView.SortOrder;

// 清空行号
foreach (DataGridViewRow row in dataGridView.Rows)
{
    row.Cells["行号"].Value = "";
}

// 重新计算并显示正确的行号
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
    DataGridViewRow row = dataGridView.Rows[i];
    row.Cells["行号"].Value = (i + 1).ToString();
}

// 根据排序方式重新排序行号列
if (sortedColumn != null)
{
    List<DataGridViewRow> sortedRows = dataGridView.Rows.Cast<DataGridViewRow>().OrderBy(r => r.Cells[sortedColumn.Name].Value).ToList();
    if (sortOrder == SortOrder.Descending)
    {
        sortedRows.Reverse();
    }

    for (int i = 0; i < sortedRows.Count; i++)
    {
        sortedRows[i].Cells["行号"].Value = (i + 1).ToString();
    }
}

在这个示例代码中,我们假设DataGridView中有一个名为"行号"的列,用于显示行号。通过获取当前排序的列和排序方式,清空行号列的值,然后根据排序后的顺序重新计算行号,并将计算后的行号显示在行号列中。最后,根据排序方式重新排序行号列,确保行号的显示与排序一致。

这是一个基本的实现思路,具体的实现方式可能会根据实际需求和代码结构有所不同。希望这个示例能够帮助到你。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

一、DataGridView控件详解DataGridViewWinform中非常常用控件之一,它可以用来显示和编辑表格数据。...设置完毕,保存CellStyle,关闭编辑器,运行程序即可看到DataGridView控件奇数行和偶数行已经按照设定样式显示出来了。...具体步骤如下:打开Winform项目,拖拉一个DataGridView控件到窗体中;添加要显示,设置属性;设置RowTemplate属性,例如设置行背景颜色:dataGridView1.RowTemplate.DefaultCellStyle.BackColor...数据编辑:DataGridView控件可以允许用户对数据进行编辑。可以通过设置属性来控制哪些可以编辑、编辑类型和格式等。数据排序DataGridView控件可以允许用户对数据进行排序。...可以通过设置属性来控制哪些可以排序,以及排序方式等。数据过滤:DataGridView控件可以允许用户对数据进行过滤,只显示符合特定条件数据。

1.8K11

C# 也可以连接和操作Access数据库

这里写一下总结一下,希望可以帮助C#操作Access数据库,有需求朋友。 当然文章有什么问题,请及时指正。一起交流探讨。...连接AccessDemo 数据库创建成功,下面以Winform为例做链接Access数据库操作: 创建Winform项目,并添加DataGridView控件用以显示数据 ?...ExecuteNonQuery方法封装:(主要用户增删改) ExecuteScalar方法封装:(用户查询第一行第一) ? ExecuteDataReader方法封装(读取数据): ? ?...读取Access并显示到界面: 为了方便对数据库数据操作,利用面向对象思想,创建数据库对应Model类: 执行ExecuteDataReader方法,获取所有数据显示DataGridView: ?...Winform项目打开,添加DataGridView。为DatagridView添加指定数据源。 选择数据库,点击下一步: ? ? 选择数据集: 新建连接: ?

4K20
  • WinForm学习

    二、C#特点 三、了解C#、.NET、Winform关系 四、快速创建Winform程序 五、Winform菜单和工具栏 六、Form初始化、布局 总结 一、C#是什么?...,让开发人员能快速地构建 C# 应用程序 三、了解C#、.NET、Winform关系 .NET 是一个开发平台,而 C# 是一种在 .NET 开发平台上使用编程语言,目前能在 .NET 平台上使用开发语言很多...;创建完成出现如下界面 3)点击启动按钮,出现自己编写窗体界面 五、Winform菜单和工具栏 1)ListBox 列表框 2)ComboBox 下拉框列表...5)numericUpdown 数字显示框,点击向上或者向下来增加或减少数字显示 6)RichTextBox ‘富文本框’ 7)MenuStrip 窗体上添加菜单栏控件 MenuStrip...控件直接拖到 Windows 窗体中即可;如果需要指定图片和文字,可以通过属性中DisplayStyle设置 9)DataGridView 在网格中可以用自定义数据行和 10)事件

    3.4K11

    使用C#开发数据库应用程序

    工具-选项-文本编辑器-C# 右边显示-行号 第二章 用Hello ACCP.NET快速热身(二) 2-1:C#循环语句 a.基本循环语句 (1)while循环 语法: while...8-3:DataGridView控件 a.认识DataGridView控件 DataGridView控件主要属性 属性 Columns 包含集合 DataSource DataGridView...(2)设置DataGridView属性和个属性 (3)指定DataGridView数据源 c.如何保存修改数据 (1)增加"保存修改"按钮 (2)编写事件处理方法 d.常见错误...(1)不使用SqlCommandBuilder直接调用Update()方法 (2)利用DataGridView显示数据集中表时,没有为它设置DataPropertyName属性 8-4:综合实例...详细请看P214页 (1)创建窗体,设计窗体界面 (2)设置窗体中DataGridView属性 (3)填充数据集,显示数据 (4)将修改数据提交到数据库 (5)实现按性别筛选功能 8-

    5.9K30

    C#DataGridView 数据绑定一些细节

    多年不写 Winform 了,突然要做一个 winform 项目,各种不顺手,各种百度。 DataGridView 数据绑定一些细节问题,记录备查。...添加删除行,直接 dataSource 进行 Add 和 Remove 操作,界面会自动更新。...更新数据,如果直接 dataSource 中元素属性进行修改,界面不会刷新,需要点击修改元素,才会刷新。要立即刷新,可以用一个新实例替换掉 dataSource 被修改实例。...阻止自动创建 dgvEmployees.AutoGenerateColumns = false; 如果实例中有些不想显示,就需要阻止自动创建。...另外,当有 Link 等时,如果设置此属性,Link Index 会被排在 TextBox 之前,导致 ColumnIndex 错乱。

    1.4K10

    C#实现WinForm DataGridView控件支持叠加数据绑定

    我们都知道WinForm DataGridView控件支持数据绑定,使用方法很简单,只需将DataSource属性指定到相应数据源即可,但需注意数据源必须支持IListSource类型,这里说是支持...,而不是实现,是因为他既可以是实现了IListSource类型,也可以是实现了IList类型,例如:List类型,DataTable类型等,这里就不一一举了,今天我主要实现功能如标题所描述:实现...WinForm DataGridView控件支持叠加数据绑定,或者说是附加数据功能,什么意思呢?...方法种注释掉方法是我写显示遮罩层方法,如果大家需要,可以查看我这篇博文:Winform应用程序实现通用遮罩层 使用方法如下: 1.添加DataGridView控件,然后将DataGridView...2.设置DataGridView,将DataPropertyName设置为需要绑定数据字段名称,这步很重要。

    1.9K30

    可视化数据库设计软件有哪些_数据库可视化编程

    (新建一个“Windows应用程序”,然后在创建项目上右击,在弹出快捷菜单上选择“添加”→“新建项”命令,“模板”选择“数据集”); 第四,已创建数据集,单击“添加”按钮即进入数据集窗口,从服务器资源管理器中选择一个数据连接...如果数据源为 IBindingListView,并支持高级排序,则获取用于排序排序顺序信息多个列名。...5.DataGridView编辑 单击DataGridView控件设计器中“编辑”选项,或者在DataGridView控件“属性”面板中单击Columns属性右侧省略按钮,即可进入“编辑...复选框为选中状态,则DataGridView控件允许记录行进行增、删、改操作。...(2)禁止记录增、删、改 取消“启用添加”“启用删除”“启用编辑”复选框选中状态,则DataGridView控件禁止记录行进行增、删、改操作。

    6.7K40

    一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示ORM对象与DataGridView绑定技术-商品字典另一个实现

    回顾与说明     前面我们把“商品字典”、“商品入库”、“商品库存查询”、“商品入库查询”四个模块已经概括或者详细演示了一个管理信息系统典型应用场景,按照原来打算,WinForm例子系统中几个模块就告一段落了...由于好多朋友都问我,你例子中大量使用ListView控件,很想知道是否可以支持DataGridView控件,所以我就有想到重新用DataGridView写一下“商品字典”模块。...在这里,我们需要注意是需要向界面放一个dataGridView,并且设置一下他,当然了大家也可以直接使用BindingSource绑定到Product.DAL.Interface.IProduct...我写完这篇post,WinForm例程即将就结束了,接下来,我会在WinForm篇之中安排几篇文章讲例程部署问题,说是部署问题,其他也不是部署问题,而是例子是以何种方式运行,是直接连接数据库,还是通过服务桥接器连接到远程服务器进行业务处理...本文我就说到这里,AgileEAS.NET平台感兴趣朋友呢,可以下载了完整代码之后自己看看,有问题请及时和我联系。

    1.1K50

    Winform 窗体美化(IrisSkin 换肤库)

    IrisSkin 换肤库 IrisSkin 是为Microsoft Visual Studio dotNET开发最易用界面增强dotNET(WinForm)组件包。...IrisSkin 换肤库 百度网盘下载 提取码: 1pb7 皮肤编辑器下载 打开下载解压文件路径:WinFormSkinDemo\WinFormSkin\WinFormSkin\bin\Debug...BtNormal_Click(object sender, EventArgs e) { //还原到默认皮肤 SkinEngine.Active = false; } } winform...组件: 使用组件: 示例: 点击组件右上角三角图标绑定数据源: 点击编辑:添加> 直接点击确定:更改HeaderText名字 最后直接启动即可。...换肤效果图 加载出来Skins文件夹下面的所有的文件列表: 切换效果:mp10 以上既是完整winform皮肤切换. 转载请注明出处!

    1.7K20

    C# winform ——界面美化技巧

    C# winform 界面美化技巧(扁平化设计) 转 关于C#界面美化一些小技巧 在不使用第三方控件如 IrisSkin 前提下,依然可以对winform做出让人眼前一亮美化 ?...首先,我们先来实现主界面的扁平化 此处分为两个步骤,第一步是更改winform自带MainForm窗体属性,第二步是添加窗体事件。...将主窗体FormBorderStyle更改为None,这样就得到了一个无边框窗体(winform自带边框太丑。。)...美化 通过设置ColumnHeadersDefaultCellStyle,来改变标题背景、字体和颜色 通过设置DefaultCellStyle,来改变单元格背景、字体和颜色 通过设置RowHeadersDefaultCellStyle...因为进度条ProgressBar由于是虚拟模式下运行,所以调整BackColor和ForeColor都不会产生效果,它仍然会根据windows主题来更改,为了使其按照我们想要颜色来显示,我们可以将虚拟模式命令去掉

    5.6K41

    C# winform 界面美化技巧(扁平化设计)

    C# winform 界面美化技巧(扁平化设计) 关于C#界面美化一些小技巧 在不使用第三方控件如 IrisSkin 前提下,依然可以对winform做出让人眼前一亮美化 首先,我们先来实现主界面的扁平化...此处分为两个步骤,第一步是更改winform自带MainForm窗体属性,第二步是添加窗体事件。...将主窗体FormBorderStyle更改为None,这样就得到了一个无边框窗体(winform自带边框太丑。。)...美化 通过设置ColumnHeadersDefaultCellStyle,来改变标题背景、字体和颜色 通过设置DefaultCellStyle,来改变单元格背景、字体和颜色 通过设置RowHeadersDefaultCellStyle...因为进度条ProgressBar由于是虚拟模式下运行,所以调整BackColor和ForeColor都不会产生效果,它仍然会根据windows主题来更改,为了使其按照我们想要颜色来显示,我们可以将虚拟模式命令去掉

    6.9K30

    WinForm程序虚拟分页(实时加载数据)

    (Word文档是个例外) 知道web中分页是怎么做出来朋友一定知道winform做分页会更简单 winform程序一样也不允许用户一下子把数据库中上万条数据全部检索出来 那么怎么让winform程序即不用翻页...提供自己数据管理操作             dataGridView1.VirtualMode = true;                         this.dataGridView1....为TRUE并且需要显示新数据时发生             dataGridView1.CellValueNeeded += new DataGridViewCellValueEventHandler(...由于这个类代码并非我写,所以这里不在公布了 此类公开几个字段和一个方法如下 每页显示条数  PageSize 当前显示第几页  PageIndex 共几页  PageCount 所有的条目数 ...TotalCount 分页表或者实体 TableName 查询字段  QueryFieldName 排序字段  OrderStr 查询条件  QueryCondition 获取数据  public

    97620

    MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)

    WinForm数据库应用 - “员工信息管理系统”。...传统表格控件在展示数据表当中一条记录时,大部分都是将一条记录展示在表格控件当中独立一行里,每行当中对应数据表当中,比如.net framework 提供DataGridView控件,它做数据绑定绑定之后...上面创建数据库有19个字段,如果使用DataGridView展示,应用程序将需要更宽距离才能完全展示一条记录。这样导致可读性大打折扣。...,他可以有Hover,点击等效果,也可以执行选择以及显示行号; · 布尔类型数据可以使用CheckBoxCell来展示; · “电话号码”,“邮编”,“月薪”等有固定格式类型,可以使用MaskedTextBoxCell...应用模板 完成上面工作,一个基本模板就设计好了。剩下工作就是将Template应用到一个GcMultiRow控件。

    1.3K100
    领券