如何检查DataGridView单元格是否具有自定义BackColor

时间:2020-04-21 23:41:52

标签: c# datagridview cell backcolor

我有一个装载数据的DataGridView,并且某些单元格已用自定义BackColor突出显示。我需要检查单元格是否突出显示(我事先不知道高光颜色)以执行一些代码。我正在使用以下代码:

Color CellColor = MyDataGrid.Rows[r].Cells[c].Style.BackColor;
//if (CellColor != Color.FromArgb(0,0,0,0)) {
//if (CellColor != Color.FromName("0")) {
if (CellColor != MiGrid.DefaultCellStyle.BackColor) {
    // Do something
}

我假设未突出显示的单元格具有DefaultCellStyle.BackColor,但它不起作用。由于DefaultCellStyle.BackColor返回Color.FromARGB(0,0,0,0),因此我也尝试与之进行比较,但仍然无法正常工作。谁能告诉我如何检查单元格是否没有自定义背景色?

2 个答案:

答案 0 :(得分:1)

感谢所有尝试提供帮助的人。我非常想知道答案:DataGridView单元格的默认Backcolor是Color.Empty。如果您对照Style.BackColor检查单元格的Color.Empty属性,则可以确定该单元格是否已分配了自定义背景色。

答案 1 :(得分:0)

首先,您所使用的环境尚不清楚。从上下文来看,我会说这是Winforms,默认是DataGridView

接下来,突出显示是什么意思?我有个想法,就是您混淆了选择样式。选择单元格还是对其进行样式设置后的问题很重要。

提供样式后,winforms中的默认单元格颜色为:

SystemColors.Window

即使Windows环境将使用自定义颜色,也应使用wokrk。您可以查询该颜色或将其设置为单元格。

如果要找出选择了哪些单元格,该可能会有些复杂。首先,必须确保选择的模式是通常是CellSelectRowHeaderSelectFullRowSelect。选择的目的和方式必须明确。

相关问题