GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 > GcMultiRow クラス : CellValueNeeded イベント |
Public Event CellValueNeeded As EventHandler(Of CellValueEventArgs)
public event EventHandler<CellValueEventArgs> CellValueNeeded
イベント ハンドラが、このイベントに関連するデータを含む、CellValueEventArgs 型の引数を受け取りました。次の CellValueEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
CellIndex | 親Section内でのセルのインデックスを取得します。 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 | セルの値として使用される値を取得または設定します。 |
大量の表形式データをGcMultiRowコントロールに表示するときは、VirtualModeプロパティをtrueに設定して、コントロールとデータストアとのやり取りを明示的に管理できます。こうすることで、大量の表形式データを扱う際のコントロールのパフォーマンスを微調整できます。
コントロールがセルの描画を必要とするたび、またはその他のアクションによってセル値の取得が必要とされるたびに、このイベントがコントロールによって生成され、データストアの値が要求されます。ユーザーはこのイベントを処理し、CellEventArgs.SectionIndex(またはCellEventArgs.RowIndex)、CellEventArgs.CellIndex(またはCellEventArgs.CellName)、およびCellEventArgs.Scopeに基づいて、データストアに対応する特定の値をCellValueEventArgs.Valueプロパティに設定する必要があります。
データが読み取り専用の場合は、CellValueNeededイベントを処理するだけでかまいません。その他の仮想モードイベントでは、ユーザーによる編集、行の追加と削除、行レベルトランザクションなどの特定の機能を実現できます。
void gcMultiRow1_CellValueNeeded(object sender, CellValueEventArgs e) { Student student = null; if (e.RowIndex == userData.Count) { student = uncommitNewStudent; } else { student = userData[e.RowIndex]; } // When MultiRow control paint a cell, the control will ask the value of the specific cell by this event. if (e.CellName == "Name") { e.Value = student.Name; } if (e.CellName == "Mathematics") { e.Value = student.MathematicsScore; } if (e.CellName == "Philosophy") { e.Value = student.PhilosophyScore; } if (e.CellName == "ID") { e.Value = student.ID; } }
Private Sub gcMultiRow1_CellValueNeeded(ByVal sender As Object, ByVal e As CellValueEventArgs) Handles gcMultiRow1.CellValueNeeded Dim student As Student = Nothing If e.RowIndex = userData.Count Then student = uncommitNewStudent Else student = userData(e.RowIndex) End If ' When MultiRow control paint a cell, the control will ask the value of the specific cell by this event. If e.CellName = "Name" Then e.Value = student.Name End If If e.CellName = "Mathematics" Then e.Value = student.MathematicsScore End If If e.CellName = "Philosophy" Then e.Value = student.PhilosophyScore End If If e.CellName = "ID" Then e.Value = student.ID End If End Sub