[英]How to change color of row in datagridview c#
我有這部分代碼,但無法正常工作。
foreach (DataGridViewRow row in dg1.Rows)
{
var now = DateTime.Now.Day;
var expirationDate = DateTime.Parse(row.Cells[2].Value.ToString()).Day;
if (now == expirationDate)
{
row.DefaultCellStyle.BackColor = Color.Red;
}
}
比較像這樣的類/結構(用==運算符)不是一個好主意
嘗試使用
if(DateTime.Compare(now, expirationDate) == 0)
您的問題不是正在執行的比較(正如其他人所指),但是使用DateTime.Compare
方法比較Date
會更好。
問題是您不檢查NewRow
。 當您嘗試讀取空Row
時,它將導致異常。
foreach (DataGridViewRow row in dg1.Rows)
{
if (!row.IsNewRow)
{
//your code
}
}
您是否嘗試將foreach
替換for
?
for (int i = 0; i < dg1.Rows.Length; i++)
{
var now = DateTime.Now.Day;
var expirationDate = DateTime.Parse(dg1.Rows[i].Cells[2].Value.ToString()).Day;
if (now == expirationDate)
{
dg1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
foreach
使用的集合是不可變的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.