セルの値が変更されたときに処理を行うには?

文書番号 : 40570     文書種別 : 使用方法     登録日 : 2017/07/26     最終更新日 : 2017/07/26
文書を印刷する
対象製品
MultiRow for Windows Forms 10.0J
詳細
MultiRowはセルの値が変更されたときに処理を行うためのイベントを提供していますが、実装する処理によっては別の最適な方法を選択できる場合もあります。

セルの外観を変更する
セルの条件付きスタイルを使用すると、セルの値が指定した値に変化したとき、自動的にセルのスタイル(文字色、背景色など)を変更できます。
セルの条件付きスタイルの詳細は、製品ヘルプの下記の章を参照してください。

[PowerTools MultiRow for Windows Forms 10.0J]
 - [MultiRowの使い方]
  - [セルの条件付きスタイル]

セルの値を計算する
サマリ型セル(SummaryCell)を使用すると、セルの値が変化したときに予め指定した計算式や集計にしたがってセルの値を計算できます。

コーディングで直接処理する
セルの値が変更されたときの処理を直接コーディングする場合は、GcMultiRow.CellEditedFormattedValueChangedイベントを使用します。現在のセルの値を取得するには、GcMultiRow.CurrentCell.EditedFormattedValueプロパティを使用します。

[Visual Basic]
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_CellEditedFormattedValueChanged(ByVal sender As System.Object, ByVal e As GrapeCity.Win.MultiRow.CellEditedFormattedValueChangedEventArgs) Handles GcMultiRow1.CellEditedFormattedValueChanged
    Dim gcMultiRow As GcMultiRow = TryCast(sender, GcMultiRow)
    If e.Scope = CellScope.Row Then
        Console.WriteLine(gcMultiRow.GetEditedFormattedValue(e.RowIndex, e.CellIndex).ToString())
    End If
End Sub

[C#]
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_CellEditedFormattedValueChanged(object sender, CellEditedFormattedValueChangedEventArgs e)
{
    GcMultiRow gcMultiRow = sender as GcMultiRow;
    if (e.Scope == CellScope.Row)
    {
        Console.WriteLine(gcMultiRow.GetEditedFormattedValue(e.RowIndex, e.CellIndex).ToString());
    }
}