CellBeginEdit
DataGridViewとCellEndEdit
イベントを確認することをお勧めします。このCellBeginEdit
イベントを使用すると、編集しようとしているセルをフォーマットできます。また、このCellEndEdit
イベントを使用すると、編集の完了後にセルのフォーマットをリセットできます。
このような:
private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) {
if (e.ColumnIndex != indexOfMyDateColumn) { // Don't custom format all columns.
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = new DataGridViewCellStyle() { Format = "F5" };
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
if (e.ColumnIndex != indexOfMyDateColumn) { // Don't custom format all columns.
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = new DataGridViewCellStyle { Format = "N2" };
}
}
CellBeginEdit
とイベントの両方にCellEndEdit
EventArgプロパティがあり、セルをフォーマットするかどうか(および/またはその方法)を決定するために使用できます。私の例では、e.ColumnIndex
プロパティを使用して、日付列がフォーマットされていないことを確認しています。
別のフォーマット文字列が必要になる場合がありますが、これはあなたが探している一般的なアプローチです。