要在dataGrudView中新增Seq欄位並自動編號如下圖,在此列出三種方式,可依照各自的情境擇一使用 :
可將自動編號邏輯加在dataGridView的以下事件中:(擇一使用)
- CellFormatting 事件
- RowPostPaint 事件
- RowsAdded 事件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. CellFormatting 事件
- 此事件在設定要顯示之儲存格內容的格式時發生。
- CellFormatting 事件用來設定dataGridView的自訂格式,如顯示值的樣式或儲存格樣式,例如背景和前景色彩。
- 因每次 CellFormatting 繪製儲存格時都會發生此事件,要避免在處理此事件時進行冗長的處理,否則會影響UI的速度。
- 將自動編號邏輯加在此事件中,如下:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 0)
e.Value = e.RowIndex + 1;
}
2. RowPostPaint 事件
- 此事件發生於發生在繪製 DataGridViewRow 之後。
- 將自動編號邏輯加在此事件中,如下:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
if ((dataGridView1.Rows[e.RowIndex].Cells["your Seq Column name"].Value).ToString() == "")
dataGridView1.Rows[e.RowIndex].Cells["Your Seq Column name"].Value = e.RowIndex + 1;
else
return;
}
3. RowsAdded 事件
- 發生於新的資料列加入 DataGridView 之後。
- 將自動編號邏輯加在此事件中,如下:
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { for (int i = 0; i < dataGridView1.Rows.Count; i++) { dataGridView1.Rows[i].Cells["your Seq Column name"].Value = i + 1;
} }
沒有留言:
張貼留言