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 }