[英]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
。
接下来,突出显示是什么意思? 我有一个想法,你有点混淆了selection和style 。 无论您是在选择单元格还是对单元格进行样式设置之后,这个问题都很重要。
如果您在样式之后,winforms 中的默认单元格颜色是:
SystemColors.Window
即使在 Windows 环境将使用自定义 colors 的情况下,这也应该可以。 您可以查询该颜色或将其设置为单元格。
如果您想找出选择了哪些单元格,那可能会有点复杂。 首先,您必须确保选择处于哪种模式。典型的是CellSelect
、 RowHeaderSelect
或FullRowSelect
。 必须明确选择的目的和方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.