2016-11-09 98 views
0

我在編寫用於管理併發機器的軟件。 DataGridView顯示機器的狀態,如果激活或不激活,我想將每臺機器的行標題打上紅色或綠色。DataGridView根據每行的列中的值更改行標題顏色

我搜索了網絡並嘗試了多種解決方案,但其中沒有一個可以工作,頭文件仍然是灰色的,所以我要求您的幫助。

DGVMachinesStatus.DataSource = db.GetAllFrom("machines"); 
DGVMachinesStatus.EnableHeadersVisualStyles = false; 

foreach (DataGridViewRow r in DGVMachinesStatus.Rows) 
{ 
    if (r.Cells["status"].ToString().Equals(DBNull.Value.ToString())) 
    { 
     DataGridViewCellStyle rowStyle; 
     rowStyle = r.HeaderCell.Style; 
     rowStyle.BackColor = Color.Red; 
     r.HeaderCell.Style = rowStyle; 
    } 
    else 
    { 
     DataGridViewCellStyle rowStyle; 
     rowStyle = r.HeaderCell.Style; 
     rowStyle.BackColor = Color.Green; 
     r.HeaderCell.Style = rowStyle; 
    } 
} 
+1

您的代碼工作沒有任何問題。你有沒有運行時錯誤? –

+0

你嘗試過'EnableHeaderVisualStyles = False'嗎?有時候是因爲你的代碼中沒有默認屬性。只是檢查它:) – Muj

+0

@Muj請檢查上面的代碼。它已經包含'EnableHeaderVisualStyles = False'。 –

回答

-1

該問題是由調用窗體構造函數中的代碼造成的,我避免了在窗體打開時使用激活事件着色DGV的問題。我不知道這是否是最好的原因,但它工作