DataTable.ColumnChanging イベントを利用した DataGrid コントロールにおける入力データの検証方法

  DataGrid を利用した対話形式での入力データを検証するには、DataTable の ColumnChanging イベントを使用することができます。
 このイベントメソッド内で、セルの入力データをチェックし、DataGrid の該当セルおよび該当 Row にエラー説明を設定します。
【使い方】

 DataGrid 等の対話形式での入力データを検証します。
/// <summary>
/// DataRow 内の指定した DataColumn の値が変更されているときに発生するイベントメソッド
/// </summary>
/// <param name="sender">DataRow が属する DataTable</param>
/// <param name="e">編集対象となる DataRow 、DataColumn および列の提示された新しい値</param>
private void dt_ColumnChanging(object sender, System.Data.DataColumnChangeEventArgs e)
{
    // 特定のセルの値が、郵便番号の形式か確認する
    if ( e.Row.Column.ColumnName.Equals("郵便番号")
    {
        if ( !Regex.IsMatch( e.ProposedValue.ToString(), @"^[0-9]{3}\-{1}[0-9]{4}$" ))
        {
            e.Row.SetColumnError( e.Column.Ordinal, "入力された郵便番号の形式に誤りがあります。");
            e.Row.RowError = "エラーデータがあります。";
        }
        else
        {
            // 列エラーをクリアします。
            row.SetColumnError( e.Column.Ordinal, "");
            // 列エラーが無ければ、Rowエラーをクリアします。
            if ( row.GetColumnsInError().Length == 0 )
                row.ClearErrors();
        }
    }
}
【注意】
戻る