我通过设置HeaderCell给dataGridView加序号,但是当点击表头,执行默认排序方法时,表头都空了,该怎么解决
//添加序号
int rowNumber = 1;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.HeaderCell.Value = rowNumber.ToString();
rowNumber++;
}
//添加序号
int rowNumber = 1;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.HeaderCell.Value = rowNumber.ToString();
rowNumber++;
}
{
if (e.ColumnIndex.Equals(-1) && e.RowIndex > -1)
{
//セルを描画する
e.Paint(e.ClipBounds, DataGridViewPaintParts.All); //行番号を描画する範囲を決定する
//e.AdvancedBorderStyleやe.CellStyle.Paddingは無視しています
Rectangle indexRect = e.CellBounds;
indexRect.Inflate(-2, -2);
//行番号を描画する
TextRenderer.DrawText(e.Graphics,
(e.RowIndex + 1).ToString(),
e.CellStyle.Font,
indexRect,
e.CellStyle.ForeColor,
TextFormatFlags.Right | TextFormatFlags.VerticalCenter);
//描画が完了したことを知らせる
e.Handled = true; }
}
在CellPainting事件中写就行了,日文注释去掉就行了
private void 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);
}