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

GcMultiRowコントロールのVirtualModeプロパティがtrueの場合に、セルの値が変更され、基になるデータソースへの格納が必要となったときに発生します。
構文
Public Event CellValuePushed As EventHandler(Of CellValueEventArgs)
public event EventHandler<CellValueEventArgs> CellValuePushed
イベント データ

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

プロパティ解説
CellIndexSection内でのセルのインデックスを取得します。 GrapeCity.Win.MultiRow.CellEventArgsから継承されます。
CellNameセルの名前を取得します。 GrapeCity.Win.MultiRow.CellEventArgsから継承されます。
RowIndexイベントが発生したオーナーRowのインデックスを取得します。 GrapeCity.Win.MultiRow.CellEventArgsから継承されます。
Scopeイベントが発生したセルの領域を取得します。 GrapeCity.Win.MultiRow.CellEventArgsから継承されます。
SectionIndexイベントが発生したオーナーSectionのインデックスを取得します。 GrapeCity.Win.MultiRow.CellEventArgsから継承されます。
Valueセルの値として使用される値を取得または設定します。  
解説
ユーザーがセル値を編集してコミットすると、このイベントがコントロールによって生成され、特定のセルの値が変更されたことを通知します。ユーザーはこのイベントを処理してデータストアを更新する必要があります。新しい値の情報はCellValueEventArgs.Valueプロパティに含まれます。編集されたセルを特定するには、CellValueEventArgsCellEventArgs.SectionIndex(またはCellEventArgs.RowIndex)、CellEventArgs.CellIndex(またはCellEventArgs.CellName)、およびCellEventArgs.Scopeの値を取得します。
使用例
次のサンプルコードは、MulitRowコントロールが仮想モードのときにセルのデータを編集してデータソースに保存する方法を示します。このサンプルコードは、VirtualModeプロパティに示されている詳細なコード例の一部を抜粋したものです。
void gcMultiRow1_CellValuePushed(object sender, CellValueEventArgs e)
{
    // When user edit value, MultiRow control will notify update your data by this event.
    Student student = userData[e.RowIndex];

    if (e.CellName == "Name")
    {
        student.Name = e.Value.ToString();
    }
    else
    {
        int value;

        if (!int.TryParse(e.Value.ToString(), out value))
        {
            MessageBox.Show("Score should be a number");
            return;
        }

        if (e.CellName == "Mathematics")
        {
            student.MathematicsScore = value;
        }
        else if (e.CellName == "Philosophy")
        {
            student.PhilosophyScore = value;
        }
    }
}
Private Sub gcMultiRow1_CellValuePushed(ByVal sender As Object, ByVal e As CellValueEventArgs) Handles gcMultiRow1.CellValuePushed
    ' When user edit value, MultiRow control will notify update your data by this event.
    Dim student As Student = userData(e.RowIndex)

    If e.CellName = "Name" Then
        student.Name = e.Value.ToString()
    Else
        Dim value As Integer

        If Not Integer.TryParse(e.Value.ToString(), value) Then
            MessageBox.Show("Score should be a number")
            Return
        End If

        If e.CellName = "Mathematics" Then
            student.MathematicsScore = value
        ElseIf e.CellName = "Philosophy" Then
            student.PhilosophyScore = value
        End If
    End If
End Sub
参照

GcMultiRow クラス
GcMultiRow メンバ
VirtualMode プロパティ
CellValueNeeded イベント
RowDirtyStateNeeded イベント
NewRowNeeded イベント
CancelRowEdit イベント

 

 


© 2008-2015 GrapeCity inc. All rights reserved.