非連結列を更新するもう1つの方法は、AfterColUpdate イベントを使用して、その他の(連結されている)列の値を変更することです。たとえば、次のように、グリッド表示の一部に借方と貸方という2つの列があるとします。
これらの列に対応するデータベースフィールドはなく、これらの列は、同じ収支列(正または負の値のどちらか)から派生される非連結列です。ユーザーの立場からは、これらの値を直接編集できると便利です。また、開発者の立場からは、それによって自動的に収支列が更新される必要があります。
C1TrueDBGrid では、このような動作を簡単に実装できます。グリッドのAfterColUpdate event イベント内に次のコードを記述すると、どちらの列を更新しても、収支列が変更されます。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Sub C1TrueDBGrid1_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1TrueDBGrid1.AfterColUpdate Dim row as Integer = Me.C1TrueDBGrid1.Row Me.C1TrueDBGrid1(row, "収支") = -e.Column.DataColumn.Value End Sub |
C# コードの書き方
C# |
コードのコピー
|
---|---|
private void C1TrueDBGrid1_AfterColUpdate(object sender, C1.Win.C1TrueDBGrid.ColEventArgs e) { int row = this.c1TrueDBGrid1.Row; this.c1TrueDBGrid1[row, "収支"] = -e.Column.DataColumn.Value; } |
どちらかの列が更新されると、実際にはこのコードによって、連結されている非表示の収支列の値が変更されます。