DataGridView Cell Backcolor未设置

时间:2010-12-04 21:17:13

标签: c# datagridview coding-style backcolor

我有一个包含四列的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;
        }

有什么想法吗?

提前致谢 吉姆

1 个答案:

答案 0 :(得分:2)

有时我发现DataGridView中的设置颜色不能按预期工作,最终会使用DataGridView.CellFormatting事件 - 这总是有用的,而且非常简单易懂。

当网格绑定到数据源时,通常会出现格式问题 - 尤其是在允许排序时。这个事件克服了这一点。