|
■No97465 (たかし さん) に返信 > If CInt(dgv(4, e.RowIndex).Value) = 0.00 Then
比較式の左辺が Integer で 比較式の右辺を Double にしているのは何故ですか? 型を一致させましょう。
> dgv(4, e.RowIndex).Style.ForeColor = Color.White
「文字色」「背景色」「選択時の文字色」「選択時の背景色」をセットで扱いましょう。 そうしないと、該当セルがアクティブになった時に 0 の文字が浮かび上がってしまいます。
また、dgv(4, e.RowIndex).Style を使うと、ソート時などに都合が悪いので、 e.CellStyle.ForeColor を使うことをお奨めします。
> 例えば、 > 0.50までがColor.White > 0.51から上がColor.Black > となります。
そもそも、何故 CInt しているのですか?
CInt(0.50) は 0 になり CInt(1.50) は 2 になりますよね。
蛇足ですが、DataGridView を DataSet / DataTable / DataView などに連結させている場合は、 Dim rowView = TryCast(dgv.Rows(e.RowIndex).DataBoundItem, DataRowView) If rowView IsNot Nothing Then Dim row As DataRow = rowView.Row のようにして、バインド元の行にアクセスできます。型付 DataSet の場合も同様に。
|