簡體   English   中英

如何在datagridview中更改行的顏色C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM