计算数据网格视图中一个单元格值小于另一个单元格值的行数
本文关键字:单元格 一个 小于 另一个 网格 数据网 数据 视图 计算 | 更新日期: 2023-09-27 18:35:31
我想计算 DataGridView 中一个单元格值小于另一个单元格值的所有行。在我的代码中,单元格值 1 (int a) 小于单元格值 2 (int b) 的所有行都会被墨迹化。但我真的没有找到计算行数的方法。现在我的 int 计数器会给出:1 这不可能是真的。我想我需要像dgvArticleStockInfo.RowsCount(a <= b)这样的东西,但我没有找到一种方法来做到这一点。任何帮助都值得赞赏:)
foreach (DataGridViewRow row in dgvArticleStockInfo.Rows)
{
int counter = 0;
int a = Convert.ToInt32(row.Cells[2].Value);
int b = Convert.ToInt32(row.Cells[3].Value);
if (a <= b)
{
row.DefaultCellStyle.BackColor = Color.FromArgb(144, 238, 144);
panel1.BackColor = Color.FromArgb(144, 238, 144);
counter++;
}
else
{
row.DefaultCellStyle.BackColor = Color.FromArgb(255,106,106);
panel2.BackColor = Color.FromArgb(255,106,106);
}
}
因为您在每次迭代中初始化counter
并将其值设置为 0
.它转到您的 if 部分并增加它的价值,它将1
.但是在下一次迭代之后,您再次将其初始化为零并增加它。
在 foreach 循环之前初始化您的counter
,您应该没问题。
int counter = 0;
int a = Convert.ToInt32(row.Cells[2].Value);
int b = Convert.ToInt32(row.Cells[3].Value);
foreach (DataGridViewRow row in dgvArticleStockInfo.Rows)
{
if (a <= b)
{
row.DefaultCellStyle.BackColor = Color.FromArgb(144, 238, 144);
panel1.BackColor = Color.FromArgb(144, 238, 144);
counter++;
}
else
{
row.DefaultCellStyle.BackColor = Color.FromArgb(255,106,106);
panel2.BackColor = Color.FromArgb(255,106,106);
}
}
但更重要的是,您可以通过简单的调试操作来解决此问题。我建议您阅读这些文章以提高您的调试技能。
- https://msdn.microsoft.com/en-us/library/y740d9d3.aspx
- https://msdn.microsoft.com/en-us/library/ms173083%28v=vs.90%29.aspx
- http://csharp.net-tutorials.com/debugging/introduction/