DOBON.NET DOBON.NETプログラミング掲示板過去ログ

datagridで特定行の色変更

環境/言語:[WINXP、VB.NET2003]
分類:[.NET]

datagridで編集可能な列があります。
編集後に、その値がある条件を満たしていたら、その行の背景を赤くしたい
のですが、どうすればよいでしょうか?

私が表示しているdatagridには、
DataGridTextBoxColumn と DataGridBoolColumn
の両方あります。

DataGridTextBoxColumnとDataGridBoolColumn
のPaintメソッドを使ってセルの色変更はなんとかできました。
しかし、特定の行の色を変えるとなると
DataGridBoolColumnでの条件判定結果をDataGridTextBoxColumnのpaintへ
反映させなければならないのですが、そのやり方がわかりません。

もっと効率的なやり方がありましたら教えてください。
よろしくお願いします。
要は、同じ行の、隣の列の値で条件判断したいと言うことですね。
Paint メソッドにて与えられる CurrencyManager 型の引数は、その List プロパティで現在表示しているアイテムのリストを取得できます。
DataTable を表示している場合、このリストはその DataTable に対する DataView になります(List プロパティは IList 型を返すので、DataView へのキャストが必要ですが)。
この DataView と、Paint メソッドの引数で与えられる行の位置を使えば、Paint の対象となっている行(DataRowView)が取得できるので、あとはそこから必要な列の値を取得するだけです。

DOBON.NET | プログラミング道 | プログラミング掲示板