沒有什麼好的搜索,所以這裏有問題。DataGridView Row BackColor
我有一個通過SQL查詢填充datagridview的窗體。有一個日期列(存儲爲'delay_in_hours',用於確定如何更改行的BackColor。
問題是backColor沒有在窗體的初始加載時設置,只有當同一事件(loadSql)加載的形式被觸發(如按鈕,我有說要更新/刷新形式)
下面是摘錄:
public void loadSql(
try
{
...
foreach (DataGridViewRow r in sqlDataGridView.Rows)
{
if (delay_in_hours >= Program._delay_warn3)
{
r.DefaultCellStyle.BackColor = Color.Red;
}
else if (delay_in_hours >= Program._delay_warn2)
{
r.DefaultCellStyle.BackColor = Color.Orange;
}
else if (delay_in_hours >= Program._delay_warn)
{
r.DefaultCellStyle.BackColor = Color.Yellow;
}
}
sqlDataGridView.Refresh();
sqlDataGridView.Update();
}
catch (Exception ex)
{
MessageBox.Show("loadsql Exception:" + ex.Message + " STACK: " + ex.StackTrace.ToString());
}
我沒能做出'watch'用於背景顏色,我將一個觀察項目設置爲CellStyle的BackColor,但是當我迭代foreach時,所有項目/值保持不變,但是當forea ch已完成,即使手錶項目未更改值,行仍具有背景色。
什麼是造成這種情況的任何想法,或者我該如何調試backColor,以便確定爲什麼加載時最初沒有在窗體上設置顏色?
SK
delay_in_hours有什麼價值?嘗試CellFormatting或CellPainting事件 – volody
這是延遲部分的片段。我把它作爲一個double來處理,所以我可以做小時比較,因爲它是在幾秒鐘內返回的。 ...沒關係,我無法弄清楚如何在這個回覆中發佈代碼... – scryptKiddy
在所有r.DefaultCellStyle.BackColor行上放置斷點來檢查這段代碼是否被執行 – volody