【问题标题】: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()
    

    如果我有其他东西可以覆盖这个值并导致问题,那么我想我会留下对行数进行取模,看看它是否是交替行。

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多