バージョン

BeforeCellUpdate イベント

セルが新しい値を受け入れる前に発生します。
シンタックス
'宣言
 
Public Event BeforeCellUpdate As BeforeCellUpdateEventHandler
public event BeforeCellUpdateEventHandler BeforeCellUpdate
イベント データ

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

プロパティ解説
Cancel System.ComponentModel.CancelEventArgsから継承されます。 
Cell セル (読み取り専用)。
NewValue セルの新しい値を返します。
解説

cell 引数は、変更される値を持つセルでプロパティを設定でき、メソッドを呼び出す UltraGridCell オブジェクトへの参照を返します。この参照を使用して、返されるセルのプロパティまたはメソッドにアクセスできます。ただし、このセルの Value プロパティは読み取り専用です。

newvalue 引数は何がセルの新しい値になるかを示します。cell によって返される UltraGridCell オブジェクトの Value プロパティは、セルの既存値を決定するために使用できます。

cancel 引数を使用して、セルが新しい値を受け入れないようにプログラミングできます。一定の条件が満たされない限り、セルを新しい値を受け入れないようにすることが可能です。

このイベントは、ユーザーによる操作、またはプログラム操作でセルの値が変更された時に生成されます。更新が発生するときに、データソースが採用するレコードのロックのタイプや UpdateMode プロパティの値などのさまざまな要素が影響する可能性があるため、セルの新しい値がこの時点でデータソースにコミットされている必要はありません。BeforeRowUpdate イベントは、データソースに新しい値がコミットされる時に生成されます。

Value プロパティを設定することでセルの値をプログラムで変更できます。ただし、このイベント プロシージャーで値が変更されるセルの Value プロパティを設定しようとすると、エラーが発生します。

提供された cancel を True に設定しなければ、このイベントの後に AfterCellUpdate イベント(セルが新しい値を受け入れた後で発生するイベント)が発生します。

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

   Private Sub UltraGrid1_BeforeCellUpdate(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.BeforeCellUpdateEventArgs) Handles ultraGrid1.BeforeCellUpdate

       ' ユーザーがセルの値を変更し、セルの編集モードを終了するときに、 
       ' UltraGrid はこのイベントを発生します。キャンセルされない場合、 
       ' バインドされたデータ ソースを新しい値と更新しますキャンセルされた場合、グリッドを更新せずに、
       ' セルおよびセルのコンテンツを元の値に戻します

       If e.Cell.Column.Key = "OrderDate" Then
           If e.NewValue Is DBNull.Value Then
               Debug.WriteLine("Cell is being updated with DBNull")
           Else
               Debug.WriteLine("Cell is being updated with " & e.NewValue.ToString())
           End If
       End If

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

private void ultraGrid1_BeforeCellUpdate(object sender, Infragistics.Win.UltraWinGrid.BeforeCellUpdateEventArgs e)
{

	// ユーザーがセルの値を変更し、セルの編集モードを終了するときに、 
	// UltraGrid はこのイベントを発生します。キャンセルされない場合、 
	// バインドされたデータ ソースを新しい値で更新しますキャンセルされた場合、グリッドを更新せずに、
	// セルおよびセルのコンテンツを元の値に戻します
	
	if ( e.Cell.Column.Key == "OrderDate" )
	{
		if ( e.NewValue == DBNull.Value )
			Debug.WriteLine( "Cell is being updated with DBNull" );
		else
			Debug.WriteLine( "Cell is being updated with " + e.NewValue.ToString( ) );
	}

}
参照