DataGridView单元格背景未设置

DataGridView单元格背景未设置

问题描述:

我有一个DataGridView有四列。前三个返回为一个数组:红色,绿色和蓝色。所有值都在0到255之间。我编程添加了一个名为“Color”的列。我希望本专栏的背景色能够反映出RGB的内容。 我可以正确地看到rgb数据,并且使用调试器,背景色正在针对属性正确设置。我也可以设置列的背景色并正确显示。我试过设置“红色”单元格的背景颜色,但这也不起作用。DataGridView单元格背景未设置

下面的代码会导致一个完全白色的列。

这里是我的代码:

 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事件 - 这一直是卓有成效的,而且是相当简单的获得你的头。

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

+0

谢谢。数据网格的内容依赖于组合框。我已经吸引了selecteditem更改事件以针对新返回的数组调用上述代码,并且颜色正确显示。我试过在代码之后调用datagridview.Update(),但第一次更新没有发生...... – Spodgy 2010-12-04 21:39:17