在 DataGridView 的列的单元格中显示行索引
Show Row Index in cells of a Column in DataGridView
我需要在 DataGridView
列的单元格中显示一个自动增量值。列的类型是 DataGridViewLinkColumn
,网格应该是这样的:
| Column X | Column Y |
-----------------------
| 1 | ........ |
| 2 | ........ |
| ........ | ........ |
| n | ........ |
我尝试了这些代码,但它不起作用:
int i = 1;
foreach (DataGridViewLinkColumn row in dataGridView.Columns)
{
row.Text = i.ToString();
i++;
}
有人能帮帮我吗?
您可以处理 DataGridView
的 CellFormatting
事件,然后为那里的单元格提供值:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex < 0 || e.RowIndex == this.dataGridView1.NewRowIndex)
return;
//Check if the event is fired for your specific column
//I suppose LinkColumn is name of your link column
//You can use e.ColumnIndex == 0 for example, if your link column is first column
if (e.ColumnIndex == this.dataGridView1.Columns["LinkColumn"].Index)
{
e.Value = e.RowIndex + 1;
}
}
最好不要使用简单的 for
或 foreach
循环,因为如果您使用另一列对网格进行排序,则此列中数字的顺序将是无序的。
我需要在 DataGridView
列的单元格中显示一个自动增量值。列的类型是 DataGridViewLinkColumn
,网格应该是这样的:
| Column X | Column Y |
-----------------------
| 1 | ........ |
| 2 | ........ |
| ........ | ........ |
| n | ........ |
我尝试了这些代码,但它不起作用:
int i = 1;
foreach (DataGridViewLinkColumn row in dataGridView.Columns)
{
row.Text = i.ToString();
i++;
}
有人能帮帮我吗?
您可以处理 DataGridView
的 CellFormatting
事件,然后为那里的单元格提供值:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex < 0 || e.RowIndex == this.dataGridView1.NewRowIndex)
return;
//Check if the event is fired for your specific column
//I suppose LinkColumn is name of your link column
//You can use e.ColumnIndex == 0 for example, if your link column is first column
if (e.ColumnIndex == this.dataGridView1.Columns["LinkColumn"].Index)
{
e.Value = e.RowIndex + 1;
}
}
最好不要使用简单的 for
或 foreach
循环,因为如果您使用另一列对网格进行排序,则此列中数字的顺序将是无序的。