0

这是我遇到的问题:我有一个DataGridView(我们称之为 A),其中列出了许多来自SqlDataReader. 这是在另一个网格的事件中DataGridView填充的。如果网格 A 中第四列的日期大于今天(较新),我需要将行绘制为红色,否则将行绘制为blueSelectionChanged

这是我在CellFormatting事件中实现的代码:

if (Convert.ToDateTime(dgvCREListaParcelas.CurrentRow.Cells[3].Value) > DateTime.Now)
        {
            e.CellStyle.BackColor = Color.Red;
        }
        else
        {
            e.CellStyle.BackColor = Color.LightBlue;
        }

我不知道为什么,但是每当我单击网格中的任何一行,或者向下和向上滚动时,线条的颜色都会改变。不幸的是,我无法发布图片,因为我没有足够的积分!

有人可以帮助解决这个问题吗?

4

1 回答 1

0

通过更改 CellFormating 事件中的以下行,我设法解决了这个问题: if (Convert.ToDateTime(dgvCREListaParcelas.CurrentRow.Cells[3].Value) < DateTime.Now)

至:

if (Convert.ToDateTime(dgvCREListaParcelas.Rows[e.RowIndex].Cells[3].Value) < DateTime.Now)

感谢关注!

于 2013-03-02T01:48:55.180 回答