条件更改datagridview单元格背景颜色和文本

时间:2009-10-28 19:47:23

标签: vb.net winforms datagridview colors cell

这适用于winform vb.net 2008应用。我从数据库中提取数据并基于一些静态条件......我想改变背景和文本的颜色。 winform中没有rowdatabound事件...

希望有人可以提供一些指导 谢谢 香农

3 个答案:

答案 0 :(得分:4)

我在RowPostPaint事件中工作......如果我放入

if (my criteria here)
    Me.dgTableInfo.Rows(e.RowIndex).Cells("ColumnName").Style.BackColor = Color.Red
end if

答案 1 :(得分:1)

不要忘记设置selectoinBackColor ...否则如果您的红色行发生了变化,但是你突出显示它,它看起来就像其他所有行一样。

答案 2 :(得分:1)

这可以在不创建或调用多个子或函数的情况下工作。似乎适用于我需要它的每个实例。

Do While myDataReader.Read()
    ItemID = Trim(myDataReader.Item("ITEM").ToString())
    PAR = myDataReader.Item("PAR").ToString()
    Returned = myDataReader.Item("RETURNED_AMOUNT")
    Taken = myDataReader.Item("TAKEN_AMOUNT")
    OnHand = ((PAR + Returned) - Taken)

    DataGridViewItemList.Rows.Add(ItemID, PAR, Returned, Taken, OnHand)

    RI = DataGridViewItemList.Rows.Count - 1
    If OnHand <= (PAR / 2) Then
        DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Color.DarkSalmon
    Else
        DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Nothing
    End If
Loop