条件性地改变DataGridView单元格的背景颜色和文本

7

这是一个关于winform vb.net 2008应用程序的问题。我从数据库中获取数据,基于一些静态条件...我想改变背景和文本的颜色。在winform中没有rowdatabound事件...

希望有人能提供一些指导 谢谢 Shannon


1
我可以想到至少20种不同的方法来从数据库中取回数据,所以如果你能更具体一些会更有帮助。 - Darin Dimitrov
抱歉...我不是在从数据库中获取数据方面遇到麻烦,而是在格式化数据所放置的单元格的样式方面。 - jvcoach23
3个回答

4

我解决了它... 在RowPostPaint事件中... 如果我加入

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

1

不要忘记设置selectoinBackColor...否则,如果你的红色行发生变化,但你已经将其突出显示,它看起来仍然和其他所有行一样。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接