DataGridView获取背景颜色
本文关键字:颜色 背景 获取 DataGridView | 更新日期: 2023-09-27 17:51:12
我似乎无法返回当前单元格在我的DatagridView的背景颜色。作为一个例子,我们说背景样式。我的网格中所有单元格的颜色都是color。粉红色的
代码:private void grid_CellEnter(object sender, DataGridViewCellEventArgs e)
{
var cell = grid.CurrentCell;
var colour = cell.Style.BackColor;
}
这个变量的颜色总是黑色。我的代码有什么问题
这取决于你设置背景色的方法。如果您使用了如下命令:
grid.Rows[r].DefaultCellStyle.BackColor = Color.Pink;
你只能从DefaultCellStyle中获得颜色值,你的cell.Style.BackColor将为空并返回RGB(0,0,0)或黑色。所以你需要把你的代码改成:
var colour = grid.Rows[cell.RowIndex].DefaultCellStyle.BackColor;
或
var colour = grid.CurrentRow.DefaultCellStyle.BackColor;
但是如果要设置颜色的话,你可以使用如下命令:
grid.Rows[r].Cells[c].Style.BackColor = Color.Pink;
cell.Style.BackColor有那个颜色。粉色值和你的代码工作
当您在设计时通过更改DataGridView的属性来设置颜色时,您需要使用第一种方法来获取颜色值
你可以看到所选单元格的背景颜色如下
var color =dataGridName.DefaultCellStyle.SelectionBackColor;
如果你想检测BackColor是否已经设置,或者如果你正在查看DefaultCellStyle。BackColor你可以用它来测试:
Color CurrentBackColor = grid.Rows[r].DefaultCellStyle.BackColor;
if(!grid.Rows[r].Cells[c].Style.BackColor.IsEmpty)
CurrentBackColor = grid.Rows[r].Cells[c].Style.BackColor;
它会给出你想要的BackColor