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;
    }

这个变量的颜色总是黑色。我的代码有什么问题

DataGridView获取背景颜色

这取决于你设置背景色的方法。如果您使用了如下命令:

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