gpt4 book ai didi

c# - Datagridview 单元格颜色更改不起作用

转载 作者:行者123 更新时间:2023-11-30 15:47:46 25 4
gpt4 key购买 nike

我有一个 Datagridview 绑定(bind)到一个数据表,该数据表保存来自数据库的数据

我做了一个函数来检查日期是否在正确的时间范围内

如果它正确没有任何反应。

否则它必须将行/单元格的颜色更改为红色

我尝试了很多方法,但没有任何效果

这是我创建的方法:


private void CheckFactTermijn()
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DateTime FactuurDatum = Convert.ToDateTime(dataGridView1.Rows[i].Cells[2].Value.ToString());
int termijn = Convert.ToInt32(dataGridView1.Rows[i].Cells[7].Value.ToString());
DateTime finalDate = FactuurDatum.AddDays((double)termijn);<p></p>

if (finalDate > DateTime.Now)
{
}
else
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
}

最佳答案

我认为解决方案在于设置颜色的时间,而不是设置颜色的方法。已经建议了几种不同的事件,有些确实会起作用。使用 cellformatting、databindingcomplete 甚至 paint 事件的问题之一是它们会被多次触发。根据我收集到的信息,datagridview 控件存在一个问题,即在显示表单之前,您无法更改任何单元格的颜色。因此,在调用 Shown() 之前运行的方法或触发的事件不会改变颜色。定位为问题解决方案的事件通常有效,但由于它们被多次调用,可能不是最有效的答案。

解决该问题的最简单方法可能是将用于填充/着色网格的代码放在表单的 Shown() 方法中,而不是构造函数中。下面是指向 msdn 论坛中的帖子的链接,该帖子向我提供了解决方案,它在页面下方大约 3/4 处被标记为答案。

MSDN forums post with the Solution

关于c# - Datagridview 单元格颜色更改不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com