打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
真正简单的Datagridview显示行号方法
                                   最近使用VB2005里的Datagridview控件做一个小程序,希望能在表格中显示行号,在网上搜索半天,网友提供的方法主要有两种:
1、使用通过textrenderer.drawtext在行的标题位置绘制文本....
(俺是菜鸟,看着这个方法都觉得有点烦,虽然大虾们提供的程序行数并不多,但实现原理还是有点复杂)

2、通过在Datagridview控件的RowsPostpaint事件中增加处理代码,遍历Datagridview的每一行,通过在行的HeaderCell里写入行号实现。

个人觉得上两种方法都有点复杂,方法一没有使用Datagridview本身的功能,方法二经常需要遍历Datagridview的每一行,如果行数太多的话肯定效率不会高。

在上述方法的启示下,我找到了Datagridview的RowStateChanged事件,只需在该事件处理程序中加上一行代码即可为Datagridview显示行号了,代码如下:
e.Row.HeaderCell.Value = (e.Row.Index + 1).ToString

不过我的方法还有个问题,如果插入和删除行号,后续行的行号不会相应变动,于是我通过在Datagridview的RowsAdded和RowsRemoved事件处理程序中加入了如下代码:
    Dim longRow As Long
    For longRow = e.RowIndex + e.RowCount - 1 To DataGridProjects.Rows.GetLastRow(DataGridViewElementStates.Displayed)
      DataGridProjects.Rows(longRow).HeaderCell.Value = (longRow + 1).ToString
    Next

请注意,上述代码中仅对已在屏幕显示的行的行号进行了修改,不像前述方法一样需要遍历控件的每一行!

经测试,该方法完美解决了Datagridview的行号显示问题,因本人初学,也可能存在更为简单的解决方法没能通过网络搜到,仅将我的方法贴出来供大家探讨,希望高手多多批评指正!
郑州小两口下班没事在家赚钱,半年后存款惊人 广告 雅宁投资 · 顶新
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DataGridView添加行号
Datagridview数据写入DataTable
C#中DataGridView绑定了DataTable后,通过代码修改DataGridView中的数据,总有一行(被修改过并被用户选中的行集合中索引为0的行)不能被UpDate回数据库的问题和解决办法
DataGridView中的行如何根据不同的值显示不同的行背景色
经典代码解析1:查找工作表中最后一行
DataGridView 设置行头列头的单元格
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服