ユーザーがセルに入力した値が正しいかどうかを調べ、正しくなければ編集から抜けないようにするには、標準のDataGridViewの場合はCellValidatingイベントを使用しますが、UltraGridの場合はBeforeExitEditModeイベントを使用します。
編集中のセルはUltraGridのActiveCellで取得できます。編集中のセルの値はTextプロパティで取得できます(※この段階ではセルのValueプロパティにはまだ古い値が入っているので使えません)。ActiveCellの列名やテキスト値を見て正しいかどうか調べ、正しくない場合はe.Cancelにtrueを入れてイベントをキャンセルしてください。
// 「Value1」列の値が負の場合に、編集から抜けないようにするコードの例 private void ultraGrid1_BeforeExitEditMode(object sender, Infragistics.Win.UltraWinGrid.BeforeExitEditModeEventArgs e) { UltraGrid grid = (UltraGrid)sender; if(grid.ActiveCell.Column.Key == "Value1" && Int32.Parse(grid.ActiveCell.Text) < 0) { MessageBox.Show("Value1のセルには0か正の整数を入力してください。"); e.Cancel = true; } }
サンプル
ヘルプドキュメント、APIリファレンス
- BeforeExitEditMode イベント(ヘルプドキュメント)
- BeforeExitEditMode イベント(APIリファレンス)