【c#】datagridviewのセルの入力チェックをする方法

datagridviewのセルの入力チェックを実装する方法を紹介します。
セルへの入力直後に判定処理を実装する方法です。

以下サンプルです。入力された値が整数かどうかチェックします。
CellValidatingメソッドを使用します。

サンプルのイメージ
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;

//変更される前のセル値を取得する。
string BeforeValue =
(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null) ?
 "" : dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

//値が変更されていない場合はチェックしない。
if (BeforeValue == e.FormattedValue.ToString())
{
return;
}
//セルフォーカスが離れたセルがチェック対象の列か判定。
if (dgv.Columns[e.ColumnIndex].Name == "CheckCol")
{
//入力された値が整数かどうかチェックする。
int i;
if (int.TryParse(e.FormattedValue.ToString(), out i) == false)
{
MessageBox.Show("整数を入力してください。", "入力エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true; //入力をキャンセルする。
return;
}
}
}
タイトルとURLをコピーしました