繁体   English   中英

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

[英]How to check if a DataGridView cell has a custom 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) 我也尝试与之比较,但它仍然不起作用。 谁能告诉我如何检查单元格是否没有自定义背景色?

感谢所有尝试提供帮助的人。 幸运的是我自己找到了答案:DataGridView 单元格的默认 Backcolor 是Color.Empty 如果您对照Color.Empty检查单元格的Style.BackColor属性,您可以确定是否已为单元格分配了自定义背景颜色。

首先,不清楚您使用的是什么环境。 从上下文来看,我会说它是一个Winforms和默认DataGridView

接下来,突出显示是什么意思? 我有一个想法,你有点混淆了selectionstyle 无论您是在选择单元格还是对单元格进行样式设置之后,这个问题都很重要。

如果您在样式之后,winforms 中的默认单元格颜色是:

SystemColors.Window

即使在 Windows 环境将使用自定义 colors 的情况下,这也应该可以。 您可以查询该颜色或将其设置为单元格。

如果您想找出选择了哪些单元格,那可能会有点复杂。 首先,您必须确保选择处于哪种模式。典型的是CellSelectRowHeaderSelectFullRowSelect 必须明确选择的目的和方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM