GrapeCity.Win.CalendarGrid.v20 アセンブリ > GrapeCity.Win.CalendarGrid 名前空間 > GcCalendarGrid クラス : CellParsing イベント |
Public Event CellParsing As EventHandler(Of CalendarCellParsingEventArgs)
public event EventHandler<CalendarCellParsingEventArgs> CellParsing
イベント ハンドラが、このイベントに関連するデータを含む、CalendarCellParsingEventArgs 型の引数を受け取りました。次の CalendarCellParsingEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
CellPosition | 関連する CalendarCell の位置を取得します。 GrapeCity.Win.CalendarGrid.CalendarCellEventArgsから継承されます。 |
CellStyle | 編集されたセルに適用されるスタイルを取得または設定します。 |
DesiredType | 必要な値のデータ型を取得します。 |
Value | 解析値を取得または設定します。 |
標準変換では要件が満たされない場合は、CellParsing イベントを処理して、必要な型への値のカスタム変換を提供します。
ユーザーは EditMode プロパティによって指定された方法を使用して編集モードに入ることができます。別のセルに移動するか[Enter]キーを押すと、編集モードが終了してセルの変更がコミットされます。[Esc]キーを押すと、変更結果がコミット前の値に戻り、CellParsing イベントは発生しません。CellParsing イベントは、セル値が実際に変更された場合にのみ発生します(最終的な値が元の値と同じ場合でも発生します)。また、CommitEdit メソッドが呼び出されたときにも発生します。
CellParsing イベントを処理するとき、値を独自に変換するか、既定の変換をカスタマイズできます。また、CalendarCellParsingEventArgs.CellStyle プロパティによって返されたオブジェクトの CalendarCellStyle.NullValue および CalendarCellStyle.DataSourceNullValue プロパティを変更したうえで、既定の型コンバータで値を解析することもできます。
値を独自に変換する場合は、CalendarCellParsingEventArgs.Value プロパティの初期の書式設定値を、CalendarCellParsingEventArgs.DesiredType プロパティで指定された型の変換値に置き換えます。
イベントハンドラが完了したとき、CalendarCellParsingEventArgs.Value が null 参照 (Visual Basicでは Nothing) であるか適切な型でない場合は、既定の型コンバータを使用して値が解析されます。このメソッドの既定の実装では、渡されたセルスタイルの CalendarCellStyle.NullValue および CalendarCellStyle.DataSourceNullValue プロパティを使用して値が解析されます。
表示用の書式設定された値へのセル値の変換をカスタマイズするには、CellFormatting イベントを処理します。
void gcCalendarGrid_CellParsing(object sender, CalendarCellParsingEventArgs e) { if (e.CellPosition.Scope != CalendarTableScope.Content) { return; } if (e.CellPosition.RowIndex == 4 && e.CellPosition.ColumnIndex == 1)//Got Bonus { if (e.Value != null && e.Value.GetType() == typeof(bool) && e.DesiredType == typeof(int)) { if (object.Equals(e.Value, true)) { e.Value = 1; } else if (object.Equals(e.Value, false)) { e.Value = 0; } } } }
Private Sub gcCalendarGrid_CellParsing(sender As Object, e As CalendarCellParsingEventArgs) If e.CellPosition.Scope <> CalendarTableScope.Content Then Return End If If e.CellPosition.RowIndex = 4 AndAlso e.CellPosition.ColumnIndex = 1 Then 'Got Bonus If e.Value IsNot Nothing AndAlso e.Value.[GetType]().Equals(GetType(Boolean)) AndAlso e.DesiredType.Equals(GetType(Integer)) Then If Object.Equals(e.Value, True) Then e.Value = 1 ElseIf Object.Equals(e.Value, False) Then e.Value = 0 End If End If End If End Sub