2010-12-04 85 views
0

我有一個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; 
     } 

任何想法?

在此先感謝 吉姆

回答

2

有時候我發現,在DataGridView設置顏色不正常工作,並最終訴諸使用DataGridView.CellFormatting事件 - 這一直是卓有成效的,而且是相當簡單的獲得你的頭。

當網格綁定到數據源時,經常會出現格式問題 - 特別是當您允許排序時。這個事件克服了這一點。

+0

謝謝。數據網格的內容依賴於組合框。我已經吸引了selecteditem更改事件以針對新返回的數組調用上述代碼,並且顏色正確顯示。我試過在代碼之後調用datagridview.Update(),但第一次更新沒有發生...... – Spodgy 2010-12-04 21:39:17