【问题标题】:Access cell color value of datagridview when it has been set via the cellpainting event args通过 cellpainting 事件参数设置后访问 datagridview 的单元格颜色值
【发布时间】: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


【解决方案1】:

试试这个。也许它可以帮助你。 “yourdatagrid.ControlStyle”、“yourdatagrid.ItemStyle”。

【讨论】:

  • DataGridView 没有 ControlStyleItemStyle 属性。
  • 我的错,DataGridView 没有,但 DataGrid 有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2018-06-15
  • 1970-01-01
  • 2013-06-15
  • 2013-01-03
  • 1970-01-01
相关资源
最近更新 更多