バージョン

無効なセル入力を処理する

InvalidValueBehavior プロパティ

InvalidValueBehavior プロパティを使用すると、ユーザーが無効な値を入力してセルを離れようとしたときに実行する動作を簡単に指定できます。たとえば、$WinGrid が値を元に戻してセルの編集モードを終了するよう指定できます。InvalidValueBehaviorプロパティは、Override オブジェクトと Column オブジェクトでも公開されています。次のコードは、このプロパティの設定方法を示します。

Visual Basic の場合:

Imports Infragistics.Win.UltraWinGrid
...
Private Sub UltraGrid1_InitializeLayout(ByVal sender As Object, _
  ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) _
  Handles ultraGrid1.InitializeLayout
    ' Set the property on the display layout's override so it affects the whole WinGrid.
    Me.ultraGrid1.DisplayLayout.Override.InvalidValueBehavior = _
      InvalidValueBehavior.RevertValue
    ' You can override the property on a specific column.
    Me.ultraGrid1.DisplayLayout.Bands(0).Columns(0).InvalidValueBehavior = _
      InvalidValueBehavior.RetainValueAndFocus
End Sub

C# の場合:

using Infragistics.Win.UltraWinGrid;
...
private void ultraGrid1_InitializeLayout(object sender,
  Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
{
	// Set the property on the display layout's override so it affects the whole WinGrid.
	this.ultraGrid1.DisplayLayout.Override.InvalidValueBehavior =
	  InvalidValueBehavior.RevertValue;
	// You can override the property on a specific column.
	this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].InvalidValueBehavior =
	  InvalidValueBehavior.RetainValueAndFocus;
}

CellDataError イベント

InvalidValueBehavior プロパティは単に、CellDataError イベントの CellDataErrorEventArgsRestoreOriginalValue プロパティと StayInEditMode プロパティのデフォルト値を提供するだけです。したがって、InvalidValueBehavior プロパティを使用する代わりに CellDataError イベントを使用することもできます。CellDataErrorEventArgs はRaiseErrorEvent プロパティも公開しており、これによってエラー メッセージ ボックスが表示されないようにすることができます。

Visual Basic の場合:

Imports Infragistics.Win.UltraWinGrid
...
Private Sub UltraGrid1_CellDataError(ByVal sender As Object, _
  ByVal e As Infragistics.Win.UltraWinGrid.CellDataErrorEventArgs) _
  Handles ultraGrid1.CellDataError
    ' Prevent the message box from displaying.
    e.RaiseErrorEvent = False
    ' Revert back to the original value.
    e.RestoreOriginalValue = True
    ' Stay in the same cell.
    e.StayInEditMode = True
End Sub

C# の場合:

using Infragistics.Win.UltraWinGrid;
...
private void ultraGrid1_CellDataError(object sender,
  Infragistics.Win.UltraWinGrid.CellDataErrorEventArgs e)
{
	// Prevent the message box from displaying.
	e.RaiseErrorEvent = false;
	// Revert back to the original value.
	e.RestoreOriginalValue = true;
	// Stay in the same cell.
	e.StayInEditMode = true;
}