Winform中的DataGridView添加行号
2014-03-11 11:04
357 查看
最近在研究一些DataGridView的东西,从数据库读取一些数据放到DataGridView上,有一个不方便的地方就是如果数据库中没有自增序号列,那么读取到DataGridView上后就没有相应的自增序号列,所以自己在网上找了个方法,总结了两个:
第一种:自己在DataGridView中添加一个名为“colSeq”的序号列,然后,每次DataGridView中有数据更新就执行如下代码:
/// <summary>
/// 向DataGridView中添加一列自增列
/// </summary>
private void AutoIncrement()
{
for (int i = 0; i < dgvRetailDetail.Rows.Count; i++)
{
dgvRetailDetail.Rows[i].Cells["colSeq"].Value = Convert.ToString(i + 1);
}
}
这种方法直观明了,得到结果如图1。
第二种:在DataGridView的RowPostPaint事件中填写代码。RowPostPaint事件指的是“在所有单元格绘制之后,执行行绘制时候引发的事件”
自己先写了一个封装函数:
然后在DataGridView的RowPostPaint事件中调用即可效果如图2:
第一种:自己在DataGridView中添加一个名为“colSeq”的序号列,然后,每次DataGridView中有数据更新就执行如下代码:
/// <summary>
/// 向DataGridView中添加一列自增列
/// </summary>
private void AutoIncrement()
{
for (int i = 0; i < dgvRetailDetail.Rows.Count; i++)
{
dgvRetailDetail.Rows[i].Cells["colSeq"].Value = Convert.ToString(i + 1);
}
}
这种方法直观明了,得到结果如图1。
第二种:在DataGridView的RowPostPaint事件中填写代码。RowPostPaint事件指的是“在所有单元格绘制之后,执行行绘制时候引发的事件”
自己先写了一个封装函数:
public static void ShowRows_DataGridView_RowPostPaint(DataGridView dgv, object sender, DataGridViewRowPostPaintEventArgs e) { Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 4, e.RowBounds.Height); TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgv.RowHeadersDefaultCellStyle.Font, rectangle, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); }
然后在DataGridView的RowPostPaint事件中调用即可效果如图2:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { ShowRows_DataGridView_RowPostPaint(this.dataGridView1,sender,e); }
相关文章推荐
- 数据库操作的时候,什么情况下需要用到事务?
- Linux 必学的60个命令
- JS获取浏览器地址栏的多参数值的任意值
- 虚拟机下fedora无法上网的解决方法
- EAS参数设置-自定义参数
- LeetCode Question Difficulty Distribution
- interceptor--structs2拦截器
- POJ1852 Ant
- 拼音输入法简评
- 拼音输入法简评
- jquery获取action返回的json数据提示undefined或是null的问题
- cqchi mysql常用的日期加减函数与实例教程
- chrome浏览器加载页面时Uncaught Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7 错误
- 苹果消息推送
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。 - CatcherX
- Flex编译慢的优化方案
- 关于do while循环的问题
- El表达式的判断字符串的长度和截取,日期时间的格式化
- 数据库面试的基础问题
- Rsync 数据同步详解