更改单元格/行颜色 - 在明确定义背面颜色后不更改

时间:2013-01-26 22:20:19

标签: .net vb.net datagridview colors cell

我有一些用VB.Net编写的代码,根据某些情况,它会更改某些行的cellstyle.backcolor。代码有效。虽然,我遇到了奇怪的事情。

如果我将整行的颜色更改为黄色,则将其更改为白色(专门针对一个单元格,因此将行颜色设置为白色,然后将特定单元格的defaultcellstyle.backcolor定位为白色),然后将整行的颜色更改为灰色,最初设置为白色的一个单元格不会更改。

这是为什么?行颜色不会取代单元格样式的颜色吗?明确定位的单元格可以是白色或灰色,因此这就是为什么必须将其作为目标,我只是在明确声明为白色的情况下对其进行了测试。

编辑:代码在下面(它在formload上加载)。它第一次贯穿这个它很好并且有效。根据我是否在包含的datagridview中触发click事件,第二次运行它可能不会将forecolor着色为番茄。每次我单步执行代码时,它总是会触发单元格格式化。我不确定为什么在datagridview点击之后,filterrows()的下一次迭代将命中单元格格式,但不会反映在datagridview中。在filterrows()之后,显示表格/ DGV。

        Public Sub filterrows()
    Dim intCount As Integer = 0

    'PROCESS THROUGH LCC_RETAINED FOR ACCOUNTING MESSAGES AND TEMP CARDS
    For Each row As chgltrDataSet.BCL_CC_Select_DataRow In frmFinBatchChrg.ChgltrDataSet.BCL_CC_Select_Data
        If row.Item("LCC_RETAINED").ToString = "X" Then
            gridccselector.Rows(intCount).Cells(0).Style.ForeColor = Color.Tomato
            row.Item("LCC_CARD_TYPE") = ""
            row.Item("LCC_CC_EXP") = ""
            row.Item("LCC_NAME_ON_CARD") = ""
        ElseIf row.Item("LCC_RETAINED").ToString = "0" Then
            gridccselector.Rows(intCount).Cells(0).Style.ForeColor = Color.Yellow
        End If
        intCount += 1
    Next
End Sub

1 个答案:

答案 0 :(得分:0)

想出来。我将以下内容添加到表单关闭的任何位置。我在一个例子中关闭了(取消时)而不是另一个。

    Me.dispose()