GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 > GcMultiRow クラス : CellValidating イベント |
Public Event CellValidating As EventHandler(Of CellValidatingEventArgs)
public event EventHandler<CellValidatingEventArgs> CellValidating
イベント ハンドラが、このイベントに関連するデータを含む、CellValidatingEventArgs 型の引数を受け取りました。次の CellValidatingEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
Cancel | System.ComponentModel.CancelEventArgsから継承されます。 |
CellIndex | 親Section内でのセルのインデックスを取得します。 GrapeCity.Win.MultiRow.CellCancelEventArgsから継承されます。 |
CellName | セルの名前を取得します。 GrapeCity.Win.MultiRow.CellCancelEventArgsから継承されます。 |
FormattedValue | 検証が必要なセルの書式設定された内容を取得します。 |
RowIndex | イベントが発生したオーナーRowのインデックスを取得します。 GrapeCity.Win.MultiRow.CellCancelEventArgsから継承されます。 |
Scope | イベントが発生したセルの領域を取得します。 GrapeCity.Win.MultiRow.CellCancelEventArgsから継承されます。 |
SectionIndex | イベントが発生したオーナーSectionのインデックスを取得します。 GrapeCity.Win.MultiRow.CellCancelEventArgsから継承されます。 |
CellValidatedイベントは、検証後処理を実行する場合に処理します。このイベントをキャンセルすると、現在のセルに対する変更もキャンセルされます。データバインドモードでこのイベントをキャンセルした場合、新しい値は基になるデータソースに送信されません。仮想モードでこのイベントをキャンセルした場合、CellValuePushedイベントは発生しません。
CellValidatingイベントは、(現在のセルから離れる前に)入力フォーカスが失われるとき、またはGcMultiRowの検証中にのみ発生します。ただし、既定のキーボード設定では、現在のセルから離れずに編集を終了するアクションが[Enter]キーに割り当てられています。そのため、[Enter]キーを押してもCellValidatingイベントは発生しません。CellValidatingイベントを発生させる場合は、[Enter]キーをSelectionActions.MoveToNextCellアクションまたはSelectionActions.MoveDownアクションに割り当てます。
void gcMultiRow1_CellValidating(object sender, CellValidatingEventArgs e) { if (e.CellName == "Age") { int age = int.Parse(e.FormattedValue.ToString()); if (age < 0 || age > 100) { e.Cancel = true; // Set error text to tell user why the cell validating do not pass. this.gcMultiRow1[e.RowIndex, e.CellIndex].ErrorText = "The age should greater than 0 and less than 100."; this.gcMultiRow1.EndEdit(); } else { this.gcMultiRow1[e.RowIndex, e.CellIndex].ErrorText = string.Empty; } } }
Private Sub gcMultiRow1_CellValidating(ByVal sender As Object, ByVal e As CellValidatingEventArgs) Handles gcMultiRow1.CellValidating If e.CellName = "Age" Then Dim age As Integer = Integer.Parse(e.FormattedValue.ToString()) If age < 0 OrElse age > 100 Then e.Cancel = True ' Set error text to tell user why the cell validating do not pass. Me.gcMultiRow1(e.RowIndex, e.CellIndex).ErrorText = "The age should greater than 0 and less than 100." Me.gcMultiRow1.EndEdit() Else Me.gcMultiRow1(e.RowIndex, e.CellIndex).ErrorText = String.Empty End If End If End Sub