获取背景颜色的DataGridView

时间:2015-05-31 10:10:11

标签: c# datagridview

我似乎无法在DatagridView中返回当前单元格的背景颜色。 举个例子,我的网格中所有单元格的背景Style.BackgroundColor颜色都是Color.Pink

代码:

private void grid_CellEnter(object sender, DataGridViewCellEventArgs e)
    {
        var cell = grid.CurrentCell;
        var colour = cell.Style.BackColor;
    }

此var颜色始终为黑色。 我的代码出了什么问题。

3 个答案:

答案 0 :(得分:1)

这取决于您用于设置背景颜色的方法。如果你使用过类似的东西:

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具有Color.Pink值,您的代码可以正常工作。

通过更改DataGridView的属性在设计时设置颜色时,需要使用第一种方法来获取颜色值。

答案 1 :(得分:0)

您可以像这样看到所选单元格的背景颜色

let zippedStream = fileStream.flatMap(
 (file) => uploadFile(file),
 (file, uploaded) => [file, uploaded]);

zippedStream.subscribe(
 ([file, response]) => console.log("File " + file.name + " uploaded: " + response.message));

答案 2 :(得分:0)

如果要检测是否已设置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