【问题标题】:Can't get DataGridView cell BackColor property无法获取 DataGridView 单元格 BackColor 属性
【发布时间】:2015-01-31 01:38:45
【问题描述】:
我试图在遍历网格时检索 DataGridView 单元格的当前颜色。我在 Form Load 事件中为 RowsDefaultCellStyle 和 AlternatingRowsDefaultCellStyle 明确设置了 BackColor。
我试图获取每个this question 的单元格背景颜色,但是,在运行时,在连续遍历单元格时,在即时窗口中:?dgvemployees.Rows(rowIndex).Cells(i + 1).Style.BackColor.ToString 每次都返回“颜色 [空]” -即使我更改索引以获取另一个我知道已设置默认颜色的单元格。
我是错过了什么还是没有做对什么?
【问题讨论】:
标签:
vb.net
datagridview
backcolor
【解决方案1】:
Cell Style 上的这个页面说:
DataGridView 控件使用指定的样式显示其单元格
通过单元格 InheritedStyle 属性,该属性继承其他样式的样式
DataGridViewCellStyle 类型的属性。通过指定的样式
Style 属性覆盖通过所有其他指定的样式
单元格样式属性,但不一定表示所有样式
这有助于细胞的外观。
基本上,您正在尝试访问尚未设置的特定单元格背景颜色。即使您设置了行的背景颜色,它也可以在单元格级别被覆盖。
值得庆幸的是,Microsoft 为我们提供了一种很好的方法来查找单元格的继承样式,这将为您提供这些单元格的网格级别设置(除非链条更下游的东西覆盖了它)。
?dgvemployees.Rows(1).Cells(2).InheritedStyle.BackColor.ToString()
如果我有其他东西可以覆盖这个值并导致问题,那么我想我会留下对行数进行取模,看看它是否是交替行。