我通过
将数据网格视图中的单元格背景颜色设置为黄色`grid.DefaultCellStyle.BackColor = Color.Yellow;`
我看到黄色细胞,但细胞的背面颜色属性是否也应该是黄色?我得到一个"颜色[空]"而不是黄色。如果我尝试以下代码,为什么颜色不是黄色?
grid.CellClick += new DataGridViewCellEventHandler(
(eventsource, cellevent) =>
{
int rowIndex = cellevent.RowIndex;
int colIndex = cellevent.ColumnIndex;
MessageBox.Show(" color: "+ grid.Rows[rowIndex].Cells[colIndex].Style.BackColor);
});
答案 0 :(得分:2)
单元格的背面颜色属性是否也应该是黄色?
不,不应该。
请注意,您可以将每个单元格的BackColor
分别设置为默认颜色的其他颜色。设置后,默认值优先于优先级。 Color.Emtpy
是额外值,表示:display the default color
。
MSDN:
Color Empty:指定此Color结构是否未初始化。
要了解显示的内容,您只需测试一下:
Color c = someCell.Style.BackColor == Color.Emtpy ?
dgv.DefaultCellStyle.BackColor: someCell.Style.BackColor;
另一种测试方法是color.IsEmpty
函数。
您还可以将已设置为默认颜色的颜色重置,方法是将其设置为Color.Emtpy
。当默认颜色发生变化时,它也会发生变化。
示例:
您希望将单元格标记为玫瑰色背面颜色。默认颜色为浅灰色,直到用户进入编辑模式;然后是白色的变化。
玫瑰色细胞不会跟随,因为它们具有单独的颜色。
在更正问题后,用户离开单元格并重置其颜色:但不是白色而是Color.Empty
。
现在,当用户离开编辑模式时,所有没有问题的单元格都会变回默认的浅灰色浏览颜色..