我有一个带有四列的DataGridView。前三个作为数组返回:红色,绿色和蓝色。所有值均在0到255之间。我在编程中添加了一个称为“颜色”的列。我希望本列列的后彩色反映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;
        }

有任何想法吗?

预先感谢吉姆

有帮助吗?

解决方案

有时我发现DataGridView中的设置颜色无法正常工作,最终求助于使用 datagridview.cellformatting 事件 - 这总是能解决问题,并且很简单地抬头。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top