我似乎无法在DatagridView中返回当前单元格的背景颜色。 举个例子,我的网格中所有单元格的背景Style.BackgroundColor颜色都是Color.Pink
代码:
private void grid_CellEnter(object sender, DataGridViewCellEventArgs e)
{
var cell = grid.CurrentCell;
var colour = cell.Style.BackColor;
}
此var颜色始终为黑色。 我的代码出了什么问题。
答案 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