バージョン

BeforeEnterEditMode イベント (UltraGrid)

セルが編集モードに入る前に発生します。
シンタックス
'宣言
 
Public Event BeforeEnterEditMode As CancelEventHandler
public event CancelEventHandler BeforeEnterEditMode
イベント データ

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

プロパティ解説
Cancel  
解説

cancel 引数を使用して、セルが編集モードに入らないようにプログラミングできます。つまりセルが、ユーザーからの入力を受け入れる準備ができたことを意味します。この引数は、一定の条件が満たされない限り、セルが編集モードに入らないようにすることが可能です。

このイベントは、セルが編集モードに入る前に生成されます。これはセルのアクティベートとは異なり、セルがフォーカスを受け取る時に発生します。BeforeCellActivate イベントは、セルがアクティベートされる前に生成されます。

セルが編集モードである場合、コントロールの IsInEditMode プロパティは True に設定されます。

cancel を True に設定しない場合、このイベントの後に AfterEnterEditMode イベント (セルが編集モードに入った後で発生するイベント) が発生します。

BeforeExitEditMode イベントは、セルが編集モードから出る前に生成されます。

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

  Private origCellVal As Object = Nothing

  Private Sub UltraGrid1_BeforeEnterEditMode(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ultraGrid1.BeforeEnterEditMode

      ' セルが編集モードになる前に BeforeEnterEditMode を発生します
      ' UltraGrid の ActiveCell プロパティは、編集モードになる 
      ' セルを示します

      ' 編集モードに入る前に、セルの元の値を保存します 
      ' AfterExitEditMode では、変更したかどうかを決定するために新しい値を元の値と比較します
      Me.origCellVal = Me.ultraGrid1.ActiveCell.Value

  End Sub

  Private Sub UltraGrid1_AfterExitEditMode(ByVal sender As Object, ByVal e As System.EventArgs) Handles ultraGrid1.AfterExitEditMode

      ' セルが編集モードを終了した後に AfterEnterEditMode を発生します
      ' UltraGrid の ActiveCell プロパティを使用すると、編集モードを終了した
      ' セルを取得できます

      ' セルの新しい値を取得し、元の値と比較します
      ' ユーザーが値を変更したかどうかを決定します
      Dim cellModified As Boolean = False

      ' 編集モードを終了したセルの新しい値を取得します
      Dim newCellVal As Object = Me.ultraGrid1.ActiveCell.Value

      ' 新しい値を BeforeEnterEditMode に保存した元のセル値と
      ' 比較します
      If (Not newCellVal Is Me.origCellVal And Not Nothing Is Me.origCellVal And _
          Not Nothing Is newCellVal) AndAlso Not Me.origCellVal.Equals(newCellVal) Then
          cellModified = True
      End If

      If cellModified Then
          ' ユーザーがセルの値を変更した場合、セルの外観の BackColor を
          ' Gray に設定します
          Me.ultraGrid1.ActiveCell.Appearance.ForeColor = Color.Red
      End If

      ' origCellVal を nothing にリセットします
      Me.origCellVal = Nothing

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

   private object origCellVal = null;

private void ultraGrid1_BeforeEnterEditMode(object sender, System.ComponentModel.CancelEventArgs e)
{

	// セルが編集モードになる前に BeforeEnterEditMode を発生します
	// UltraGrid の ActiveCell プロパティは、編集モードになる 
	// セルを示します

	// 編集モードに入る前に、セルの元の値を保存します 
	// AfterExitEditMode は、変更したかどうかを決定するために新しい値を元の値と比較します
	this.origCellVal = this.ultraGrid1.ActiveCell.Value;

}

private void ultraGrid1_AfterExitEditMode(object sender, System.EventArgs e)
{

	// セルが編集モードを終了した後に AfterEnterEditMode を発生します
	// UltraGrid の ActiveCell プロパティを使用すると、編集モードを終了した
	// セルを取得できます

	// セルの新しい値を取得し、元の値と比較します
	// ユーザーが値を変更したかどうかを決定します
	bool cellModified = false;

	// 編集モードを終了したセルの新しい値を取得します
	object newCellVal = this.ultraGrid1.ActiveCell.Value;

	// 新しい値を BeforeEnterEditMode に保存した元のセル値と
	// 比較します
	if ( newCellVal != this.origCellVal &&
		 null != this.origCellVal && null != newCellVal &&
		 !this.origCellVal.Equals( newCellVal ) )
	{
		cellModified = true;
	}

	if ( cellModified )
	{
		// ユーザーがセルの値を変更した場合、セルの外観の BackColor を
		// Gray に設定します
		this.ultraGrid1.ActiveCell.Appearance.ForeColor = Color.Red;
	}
	
	// origCellVal を null にリセットします
	this.origCellVal = null;

}
参照