【发布时间】:2016-08-22 15:19:33
【问题描述】:
我对此的搜索只发现了如何设置 datagridview 单元格的颜色,无论是在格式设置、单元格绘制还是数据绑定事件中。
我正在尝试使用的代码当前正在通过 cellpainting 事件中的 datagridview 事件参数设置 cellstyle.backcolor:
Private Sub dgvAncientCode_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles dgvResults.CellPainting
If dgvAncientCode.Columns(e.ColumnIndex).Name = "Blah" Then
e.CellStyle.BackColor = Color.Red
End If
这行得通——指定的单元格确实显示为红色——但我如何在代码的其他地方访问这个值?当我检查 cell.style 时,它设置为默认值,但它在屏幕上显示为红色。
我知道这段代码有很多错误,但我还是比较新的,我支持很多遗留的东西,这些东西包括你能想到的每一个最坏的做法。我通过设置 cell.style.backcolor 而不是 e.CellStyle.BackColor 确实想出了一个解决方法,这让我稍后可以访问该值,但我也试图了解原始代码发生了什么。我讨厌在不了解原因的情况下让事情顺利进行,主要是因为我知道我可能会遗漏一些重要的东西。
如果这点不清楚或之前有人问过,我深表歉意。我已经在这里和其他地方搜索了几个小时,所以希望我没有错过它。
编辑以获取更多信息:有一个按钮单击事件,它使用 for each 循环遍历 datagridview。这用于设置自定义 excel 导出类的单元格颜色。这不起作用,因为 datagridview 中的任何单元格都没有 cell.style.backcolor 属性的值,即使它们在表单中显示为红色。如果单元格在表单中显示为红色,我应该能够以某种方式访问它——至少,我认为我应该。
【问题讨论】:
-
but how can I access this value elsewhere in code?真正的问题是你想做什么来获得这个价值,现在似乎什么都没有......你想得到CellStyle.BackColor是你在问什么?如果是这样,您想在什么事件/方法中检索它,条件是什么。您会发现缺少很多信息可以帮助您。请更新您的问题并提供更多详细信息... -
既然“红色”只是表示其他东西的状态——列名,为什么不用它来代替颜色“其他地方”呢?
标签: vb.net datagridview