ユーザーがセルに入力した値が正しいかどうかを調べ、正しくなければ編集から抜けないようにするには、標準の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リファレンス

 

Tagged:

製品について

Ultimate UI for Windows Forms