DataGridの特定のセルに色をつけるには?


たぶきー  2004-07-06 16:03:37  No: 114561  IP: [192.*.*.*]

初心者のため間違っている質問がありましたらすみません。

vb.netになるのですが、
dataGridのセルに色をつけたいです。
変数に「1」が立っているときに行を赤ラインをつけたいと
思っています。

ネットで探してもよくわかりません。

下記のプログラムを見つけたのですが、何を言っているのか分かりません。
もし迷惑でなければ教えて下さい。よろしくお願いします。

*****************************
ネットで落ちていたプログラム
*****************************
DataGrid内の特定のセルの色を変える
DataGridColumnStyle.PaintメソッドをオーバーライドしたDataGridColumnStyleからの派生クラスを作成することにより、
セルの色を自由に変えることが出来るようになります。

まずは次のようなクラスを作成します。このPaintメソッド内でどのようなセルにどのような色をつけるか指定します。
この例ではDataGridTextBoxColumnから派生したMyDataGridTextBoxColumnクラスを作成し、値が"0"のセルを前景色が白、
背景色が黒で表示するようにしています。

[VB.NET]
'DataGridTextBoxColumnを継承してクラスを作成
Public Class MyDataGridTextBoxColumn
    Inherits DataGridTextBoxColumn
    'Paintメソッドをオーバーライドする
    Protected Overloads Overrides Sub Paint( _
            ByVal g As Graphics, _
            ByVal bounds As Rectangle, _
            ByVal source As CurrencyManager, _
            ByVal rowNum As Integer, _
            ByVal backBrush As Brush, _
            ByVal foreBrush As Brush, _
            ByVal alignToRight As Boolean _
            )
        'セルの値を取得する
        Dim cellValue As Object = _
            Me.GetColumnValueAtRow(source, rowNum)
        If Not cellValue Is Nothing Then
            '値が"0"のセルの前景色と背景色を変える
            If CType(cellValue, String) = "0" Then
                foreBrush = New SolidBrush(Color.White)
                backBrush = New SolidBrush(Color.Black)
            End If
        End If
        '基本クラスのPaintメソッドを呼び出す
        MyBase.Paint(g, bounds, source, rowNum, _
            backBrush, foreBrush, alignToRight)
    End Sub
End Class

編集 削除
特攻隊長まるるう  2004-07-07 08:50:46  No: 114562  IP: [192.*.*.*]

継承とオーバーライドについてはヘルプ(MSDN)に載ってると思いますが?

あとは継承した MyDataGridTextBoxColumn クラスを使って実際の
DataGrid に DataGridTextBoxColumn を加えるような方法で実装する
(オブジェクトのインスタンスを生成する)と言うことだと思います。

編集 削除