Winform中的dataGridView添加自动编号

新建一个WinForm项目,在工具栏里拖一个dataGriView到窗体中,默认名称为dataGridView1,把数据源添加到dataGridView1中,运行,看到dataGriView1有数据显示,但没有行编号,所以我们需要添加一列,用来显示行号,以便我们知道这是第几条记录。选中dataGriView1,然后在属性列表的事件选择RowPostPaint事件,双击后添加事件处理函数,代码如下:

privatevoid dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
    //自动编号,与数据无关
    Rectangle rectangle = new Rectangle(e.RowBounds.Location.X, 
       e.RowBounds.Location.Y, 
       dataGridView1.RowHeadersWidth - 4, 
       e.RowBounds.Height);
    TextRenderer.DrawText(e.Graphics, 
          (e.RowIndex + 1).ToString(), 
           dataGridView1.RowHeadersDefaultCellStyle.Font, 
           rectangle, 
           dataGridView1.RowHeadersDefaultCellStyle.ForeColor, 
           TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}

再次运行程序,就能看到多了一个标题列,显示数据的行号!!嘻嘻。。。

 

 1 public static void DrawingRowIndex(DataGridView dgv, DataGridViewRowPostPaintEventArgs e)
 2 {
 3             //描绘文本的位置 
 4             Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,
 5                e.RowBounds.Location.Y,
 6                dgv.RowHeadersWidth - 13,//行头宽 
 7                e.RowBounds.Height);// 8 
 9              //描绘行头文本 
10             TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),//内容 
11                 dgv.RowHeadersDefaultCellStyle.Font,//字体 
12                 rectangle,//位置 
13                 dgv.RowHeadersDefaultCellStyle.ForeColor,//颜色 
14                 TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
15 }

 

posted @ 2010-12-25 02:01  海阔天空XM  阅读(8191)  评论(2编辑  收藏  举报