PowerTools MultiRow for Windows Forms 8.0J
CellParsing イベント

セルの値が変更された場合に、セルの編集モードが終了すると発生します。
構文
イベント データ

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

プロパティ解説
CellIndexSection内でのセルのインデックスを取得します。  
CellNameセルの名前を取得します。  
CellStyle編集されたセルに適用されるスタイルを取得または設定します。  
DesiredType System.Windows.Forms.ConvertEventArgsから継承されます。
ParsingAppliedセルの値が正常に解析されたかどうかを示す値を取得または設定します。  
RowIndexイベントが発生したオーナーRowのインデックスを取得します。  
Scopeイベントが発生したセルの領域を取得します。  
SectionIndexイベントが発生したオーナーSectionのインデックスを取得します。  
Value System.Windows.Forms.ConvertEventArgsから継承されます。
解説

既定では、GcMultiRowコントロールは、セルに表示されたユーザー指定の値を、セルのCell.ValueTypeプロパティで指定された型の、基になる実際のセル値に変換しようとします。この変換では、セルのCell.InheritedStyleプロパティによって返されたセルスタイルの書式設定プロパティが使用されます。

この標準変換では要件が満たされない場合は、CellParsingイベントを処理して、必要な型への値のカスタム変換を提供します。

ユーザーはEditModeプロパティで指定された方法で編集モードに入り、別のセルに移動するか[Enter]キーを押すことによって編集モードを終了し、セルの変更をコミットできます。[Esc]キーを押すと、変更結果がコミット前の値に戻り、CellParsingイベントは発生しません。CellParsingイベントは、セル値が実際に変更された場合にのみ発生します(最終的な値が元の値と同じ場合でも発生します)。また、CommitEditメソッドが呼び出されたときにも発生します。

CellParsingイベントを処理するとき、値を独自に変換するか、既定の変換をカスタマイズできます。また、CellParsingEventArgs.CellStyleプロパティ(これはセルのCell.InheritedStyleを使用して初期化されます)によって返されたオブジェクトのCellStyle.NullValueCellStyle.DataSourceNullValueCellStyle.FormatProviderの各プロパティを変更したうえで、既定の型コンバータで値を解析することもできます。

値を独自に変換する場合は、System.Windows.Forms.ConvertEventArgs.Valueプロパティの初期の書式設定値を、セルのCell.ValueTypeプロパティで指定された型の変換値に置き換えます。そして、後続の処理でさらに値が解析されないように、CellParsingEventArgs.ParsingAppliedプロパティをtrueに設定します。

イベントハンドラが完了したとき、System.Windows.Forms.ConvertEventArgs.Valueがnull 参照 (Visual Basicでは Nothing)であるか適切な型でない場合、またはCellParsingEventArgs.ParsingAppliedプロパティがfalseの場合は、既定の型コンバータを使用して値が解析されます。このメソッドの既定の実装では、渡されたセルスタイルのCellStyle.NullValueCellStyle.DataSourceNullValueCellStyle.FormatProviderの各プロパティを使用して値が解析されます。値がCellStyle.NullValueと等しくない場合は、CellStyle.FormatProviderプロパティと渡された型コンバータを使用して値が解析されます。

表示用の書式設定された値へのセル値の変換をカスタマイズするには、CellFormattingイベントを処理します。

ユーザーがセル値を編集してから他のセルをクリックすると、セルの値が適用されます。イベントの順序は次のとおりです。

  1. ユーザーがセルをダブルクリックするか、ショートカットキーを押すか、文字キーを押すと、セルが編集状態になります。
  2. ユーザーが編集コントロールまたは編集セルに値を入力します。
  3. 現在のセルでの作業が済んだら、ユーザーが別のセルをクリックします。このとき、新しいセル位置にリダイレクトできます。
  4. ターゲットのセル(新しいセル)の行インデックスが現在のセル(古いセル)の行インデックスと異なる場合は、RowLeaveイベントが発生します。
  5. セルの値を検証します。
  6. 編集値の型を、セルで受け入れ可能な値の型に変換します。
  7. この時点で、編集値がセルに適用されます。
  8. ターゲットのセル(新しいセル)の行インデックスが現在のセル(古いセル)の行インデックスと異なる場合は、行の値全体を検証します。
  9. 編集コントロールまたは編集セルがアンインストールされます。
  10. ターゲットのセル(新しいセル)に入ります。

参照

GcMultiRow クラス
GcMultiRow メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.