我有一个包含四列的DataGridView。前三个作为数组返回:红色,绿色和蓝色。所有值都在0到255之间。我以编程方式添加了一个名为“Color”的列。我想要这列的背景颜色来反映RGB内容。 我可以正确地看到rgb数据,并且使用调试器,正在针对属性正确设置背景颜色。我也可以设置列的背景色并正确显示。我已经尝试设置“红色”单元格的背景颜色,这也不起作用。
以下代码会产生一个完全白色的列。
这是我的代码:
DataGridViewColumn DGC = new DataGridViewColumn();
DGC.Name = "Colour";
DGC.CellTemplate = new DataGridViewTextBoxCell();
dgPallette.Columns.Add(DGC);
foreach (DataGridViewRow DGR in dgPallette.Rows)
{
Color cellColor = Color.FromArgb(
int.Parse(DGR.Cells["Red"].Value.ToString()),
int.Parse(DGR.Cells["Green"].Value.ToString()),
int.Parse(DGR.Cells["Blue"].Value.ToString()));
DGR.Cells["Colour"].Style.BackColor = cellColor;
}
有什么想法吗?
提前致谢 吉姆
答案 0 :(得分:2)
有时我发现DataGridView中的设置颜色不能按预期工作,最终会使用DataGridView.CellFormatting事件 - 这总是有用的,而且非常简单易懂。
当网格绑定到数据源时,通常会出现格式问题 - 尤其是在允许排序时。这个事件克服了这一点。