我有一个装载数据的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),因此我也尝试与之进行比较,但仍然无法正常工作。谁能告诉我如何检查单元格是否没有自定义背景色?
答案 0 :(得分:1)
感谢所有尝试提供帮助的人。我非常想知道答案:DataGridView单元格的默认Backcolor是Color.Empty
。如果您对照Style.BackColor
检查单元格的Color.Empty
属性,则可以确定该单元格是否已分配了自定义背景色。
答案 1 :(得分:0)
首先,您所使用的环境尚不清楚。从上下文来看,我会说这是Winforms
,默认是DataGridView
。
接下来,突出显示是什么意思?我有个想法,就是您混淆了选择和样式。选择单元格还是对其进行样式设置后的问题很重要。
提供样式后,winforms中的默认单元格颜色为:
SystemColors.Window
即使Windows环境将使用自定义颜色,也应使用wokrk。您可以查询该颜色或将其设置为单元格。
如果要找出选择了哪些单元格,该可能会有些复杂。首先,必须确保选择的模式是。通常是CellSelect
,RowHeaderSelect
或FullRowSelect
。选择的目的和方式必须明确。