在使用DataGridView的过程中,由于数据行比较多的情况下,客户需要为每行数据添加一个行号,这样就可以直观地看到当前数据行是
第几行了,DotNetBar for Windows Forms中的DataGridView控件为开发人员提供了这种方法,通过处理RowPostPaint 事件可以轻松地
为每行数据添加行号,具体如下:
void DataGridViewRowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
DataGridView dg = (DataGridView)sender;
// Current row record
string rowNumber = (e.RowIndex + 1).ToString();
// Format row based on number of records displayed by using leading zeros
while (rowNumber.Length < dg.RowCount.ToString().Length) rowNumber = "0" + rowNumber;
// Position text
SizeF size = e.Graphics.MeasureString(rowNumber, this.Font);
if (dg.RowHeadersWidth < (int)(size.Width + 20)) dg.RowHeadersWidth = (int)(size.Width + 20);
// Use default system text brush
Brush b = SystemBrushes.ControlText;
// Draw row number
e.Graphics.DrawString(rowNumber, dg.Font, b, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y +
((e.RowBounds.Height - size.Height) / 2));
}