无法获取DataGridView单元格BackColor属性

时间:2014-12-02 17:42:31

标签: vb.net datagridview backcolor

我试图在迭代网格时检索DataGridView单元格的当前颜色。我在Form Load事件中为RowsDefaultCellStyle和AlternatingRowsDefaultCellStyle显式设置BackColor。

我尝试按this question获取单元格BackColor,但是,在运行时,在迭代一行中的单元格时,在立即窗口中:?dgvemployees.Rows(rowIndex).Cells(i + 1).Style.BackColor.ToString返回&#34 ;颜色[空]"每次 - 即使我更改索引以获得我知道的另一个单元格具有默认颜色集。

我错过了什么或者没有做对吗?

1 个答案:

答案 0 :(得分:1)

Cell Style上的此页面说明了:

  

DataGridView控件使用指示的样式显示其单元格   由单元格InheritedStyle属性,它继承其他的样式   DataGridViewCellStyle类型的属性。通过指定的样式   Style属性覆盖通过所有其他指定的样式   单元格样式属性,但不一定表示所有样式   这有助于细胞的出现。

基本上,当您尚未设置时,您正尝试访问特定的单元格颜色。即使您已设置行的背景颜色,也可以在单元格级别覆盖它。

值得庆幸的是,微软给了我们一个很好的方法来找到继承的单元格样式,它将为你提供这些单元格的网格级设置(除非链中的某些东西覆盖了它)。

?dgvemployees.Rows(1).Cells(2).InheritedStyle.BackColor.ToString()

如果我有其他东西可以覆盖这个值并导致问题,那么我想我会在行数上做一个模数,看看它是否是一个交替的行。