我想改變網格中整行的顏色。網格上方有兩個複選框。一個是活動的,另一個是非活動的。當我點擊活動時,我希望ExpirationDate(網格中的列的名稱)大於或等於今天的所有行DateTime從白色變爲咧嘴。當我點擊不活動,同樣的事情紅色。該過濾器處於活動狀態和非活動狀態正在工作,我只需要更改數據行的顏色。如何在有條件時更改網格中的單元格顏色?
我知道我可以使用cell_formating事件。這是代碼,但我需要一些幫助。
private void grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
Color active = Color.LightGreen;
Color inactive = Color.LightPink;
DataRowView drv = bindingSource[e.RowIndex] as DataRowView;
switch (drv["ExpirationDate"].ToString())
{
case ???:
grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = active;
break;
case ???:
grid.Rows[e.RowIndex].DefaultCellStyle.BackColor = inactive;
break;
}
}
我不知道我應該放的情況。因爲,C#需要不斷的值。當我把String.Format(" ExpirationDate>= '{0}' ", DateTime.Today)
的情況下c#拋出異常「錯誤44預計有一個常量」。任何想法我應該輸入什麼?
由於您需要使用常量情況來執行switch,因此請將其更改爲if語句或else語句。 – krillgar