我试图在迭代网格时检索DataGridView单元格的当前颜色。我在Form Load事件中为RowsDefaultCellStyle和AlternatingRowsDefaultCellStyle显式设置BackColor。
我尝试按this question获取单元格BackColor,但是,在运行时,在迭代一行中的单元格时,在立即窗口中:?dgvemployees.Rows(rowIndex).Cells(i + 1).Style.BackColor.ToString
返回&#34 ;颜色[空]"每次 - 即使我更改索引以获得我知道的另一个单元格具有默认颜色集。
我错过了什么或者没有做对吗?
答案 0 :(得分:1)
Cell Style上的此页面说明了:
DataGridView控件使用指示的样式显示其单元格 由单元格InheritedStyle属性,它继承其他的样式 DataGridViewCellStyle类型的属性。通过指定的样式 Style属性覆盖通过所有其他指定的样式 单元格样式属性,但不一定表示所有样式 这有助于细胞的出现。
基本上,当您尚未设置时,您正尝试访问特定的单元格颜色。即使您已设置行的背景颜色,也可以在单元格级别覆盖它。
值得庆幸的是,微软给了我们一个很好的方法来找到继承的单元格样式,它将为你提供这些单元格的网格级设置(除非链中的某些东西覆盖了它)。
?dgvemployees.Rows(1).Cells(2).InheritedStyle.BackColor.ToString()
如果我有其他东西可以覆盖这个值并导致问题,那么我想我会在行数上做一个模数,看看它是否是一个交替的行。