Показывать индекс строки в ячейках столбца в DataGridView
Мне нужно показать значение автоинкремента в ячейках столбца в DataGridView
, Тип столбца DataGridViewLinkColumn
и сетка должна быть такой:
| Column X | Column Y |
-----------------------
| 1 | ........ |
| 2 | ........ |
| ........ | ........ |
| n | ........ |
Я пробовал эти коды, но это не работает:
int i = 1;
foreach (DataGridViewLinkColumn row in dataGridView.Columns)
{
row.Text = i.ToString();
i++;
}
Кто-нибудь может мне помочь?
1 ответ
Решение
Вы можете справиться CellFormatting
событие вашего DataGridView
а затем укажите значение для ячейки:
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
цикл, потому что если вы сортируете сетку, используя другой столбец, порядок чисел в этом столбце будет неупорядоченным.