バージョン

CellDataError イベント

ユーザーが入力した値が無効である場合、BeforeExitEditMode が起動後に発生します。
シンタックス
'宣言
 
Public Event CellDataError As CellDataErrorEventHandler
public event CellDataErrorEventHandler CellDataError
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、CellDataErrorEventArgs 型の引数を受け取りました。次の CellDataErrorEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
ForceExit 強制的に編集モードを抜ける必要がある場合にTrueが返されます。Trueの場合StayInEditModeの設定は無視されます。
RaiseErrorEvent Errorイベントを発生させるかどうかを設定します。デフォルト値は true です。
RestoreOriginalValue セルの値を元の値に戻すかどうかを設定します。デフォルト値は true です。
StayInEditMode 編集モードにとどまるかどうかを示します。デフォルト値は true です。
解説

ユーザーが無効な値でセルを更新しようとすると CellDataError が起動します。BeforeExitEditMode が起動後に発生します。BeforeExitEditMode がキャンセルされると、このイベントと編集モードの終了に関係する以降のイベントは起動されません。

エディターの値が無効であるか、データソースにバインドされた値の設定が成功しない場合、このイベントが起動します。グリッドが値の検証に失敗する場合、このイベントを起動し、この値でセルの更新を試みません。検証が成功すればグリッドはセルの更新を試み、失敗すればこのイベントを起動します。

使用例
Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinGrid

  Private Sub UltraGrid1_CellDataError(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.CellDataErrorEventArgs) Handles ultraGrid1.CellDataError

      ' CellDataError gets fired when the user attempts to exit the edit mode
      ' after entering an invalid value in the cell. There are several properties
      ' on the passed in event args that you can set to control the UltraGrid's
      ' behaviour.

      ' Typically ForceExit is false. The UltraGrid forces exits on cells under
      ' circumstances like when it's being disposed of. If ForceExit is true, then 
      ' the UltraGrid will ignore StayInEditMode property and exit the cell 
      ' restoring the original value ignoring the value you set to StayInEditMode
      ' property.
      If Not e.ForceExit Then
          ' Default for StayInEditMode is true. However you can set it to false to
          ' cause the grid to exit the edit mode and restore the original value. We
          ' will just leave it true for this example.
          e.StayInEditMode = True

          ' Set the RaiseErrorEvent to false to prevent the grid from raising 
          ' the error event and displaying any message.
          e.RaiseErrorEvent = False

          ' Instead display our own message.
          If Me.ultraGrid1.ActiveCell.Column.DataType Is GetType(DateTime) Then
              MessageBox.Show(Me, "Please enter a valid date.", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error)
          ElseIf Me.ultraGrid1.ActiveCell.Column.DataType Is GetType(Decimal) Then
              MessageBox.Show(Me, "Please enter a valid numer.", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error)
          End If
      Else
          ' Set the RaiseErrorEvent to false to prevent the grid from raising 
          ' the error event.
          e.RaiseErrorEvent = False
      End If

  End Sub
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System.Diagnostics;

private void ultraGrid1_CellDataError(object sender, Infragistics.Win.UltraWinGrid.CellDataErrorEventArgs e)
{

	// CellDataError gets fired when the user attempts to exit the edit mode
	// after entering an invalid value in the cell. There are several properties
	// on the passed in event args that you can set to control the UltraGrid's
	// behaviour.

	// Typically ForceExit is false. The UltraGrid forces exits on cells under
	// circumstances like when it's being disposed of. If ForceExit is true, then 
	// the UltraGrid will ignore StayInEditMode property and exit the cell 
	// restoring the original value ignoring the value you set to StayInEditMode
	// property.
	if ( !e.ForceExit )
	{
		// Default for StayInEditMode is true. However you can set it to false to
		// cause the grid to exit the edit mode and restore the original value. We
		// will just leave it true for this example.
		e.StayInEditMode = true;
	    
		// Set the RaiseErrorEvent to false to prevent the grid from raising 
		// the error event and displaying any message.
		e.RaiseErrorEvent = false;

		// Instead display our own message.
		if ( this.ultraGrid1.ActiveCell.Column.DataType == typeof( DateTime ) )
		{
			MessageBox.Show( this, "Please enter a valid date.", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error );
		}
		else if ( this.ultraGrid1.ActiveCell.Column.DataType == typeof( decimal ) )
		{
			MessageBox.Show( this, "Please enter a valid numer.", "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error );
		}
	}
	else
	{
		// Set the RaiseErrorEvent to false to prevent the grid from raising 
		// the error event.
		e.RaiseErrorEvent = false;
	}

}
参照