PowerTools MultiRow for Windows Forms 8.0J
CellValidating イベント
使用例 

内容を検証できるようにするため、セルが入力フォーカスを失うと発生します。
構文
イベント データ

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

プロパティ解説
Cancel System.ComponentModel.CancelEventArgsから継承されます。
CellIndexSection内でのセルのインデックスを取得します。 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アクションに割り当てます。

使用例
次のサンプルコードは、このイベントを使用してセルの値を検証する方法を示します。このサンプルを実行するには、Windowsフォームを作成し、GcMultiRowコントロールをそのフォームに追加します。次に、"Age"という名前のNumericUpDownCellをMultiRowコントロールのテンプレートに追加します。さらに、このイベントのイベントハンドラを追加して、次のコードをイベントハンドラにコピーします。実際にエラーがどのように通知されるかを確認するには、このサンプルプログラムを実行し、"Age"セルに無効な値を入力してフォーカスを移動してみます。
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
参照

GcMultiRow クラス
GcMultiRow メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.