2014-06-22 35 views
0

我試圖用此代碼在DataGridView中更改Background行。'System.Windows.Forms.DataGridViewRow'不包含'BackColor'的定義

DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[RowNumber].Clone(); 
row.Cells[1].Value = "Hey World"; 
row.BackColor = System.Drawing.Color.Gray; 

但在第三行是此錯誤:

'System.Windows.Forms.DataGridViewRow' does not contain a definition for 'BackColor' and no extension method 'BackColor' accepting a first argument of type 'System.Windows.Forms.DataGridViewRow' could be found (are you missing a using directive or an assembly reference?)

回答

2

你得到錯誤,因爲DataGridViewRow有沒有這樣的屬性。

你可以通過修改它改變BackColor單個行的DefaultCellStyle

dataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Gray; 

您也可以訂閱的DataGridViewCellFormatting事件,並把一些邏輯在裏面,以確定哪些行需要有不同背景顏色:

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.RowIndex % 2 == 0) 
     e.CellStyle.BackColor = Color.Gray; 
} 

上面的代碼將每隔一行的背景顏色更改爲灰色。

(這只是一個人爲的例子,因爲如果你真的想交替行的顏色,你會改變AlternatingRowsDefaultCellStyle屬性。)

相關問題