我有一些用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
答案 0 :(得分:0)
想出来。我将以下内容添加到表单关闭的任何位置。我在一个例子中关闭了(取消时)而不是另一个。
Me.dispose()