如果DataGridView单元格值大于另一个单元格
本文关键字:单元格 另一个 大于 如果 DataGridView | 更新日期: 2023-09-27 18:11:33
嗨,我想比较两个单元格,它们都是数字值。如果Cell1大于cell2,则颜色单元格为绿色。
这是我的代码:在单元格格式在datagridview
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
if (row.Cells[3].Value.ToString() > (row.Cells[4].Value.ToString()))
{
row.Cells[3].BackColor = Color.PaleGreen;
}
但是我得到两个错误:在第一行操作符'>'不能应用于'string'和'string'类型的操作数,在第二行System.Windows.Forms。DataGridViewCell'不包含'BackColor'的定义,也没有扩展方法'BackColor'接受类型为'System.Windows.Forms '的第一个参数。
这两个错误都是正确的。你将单元格值转换为字符串,但如果你想把它们作为数字进行比较,那么你需要把它们变成数字。BackColor也在cell的style属性中。所以你的代码应该看起来像这样:
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
double value1;
double value2;
if(!double.TryParse(row.Cells[3].Value.ToString(), out value1) || !double.TryParse(row.Cells[4].Value.ToString(), out value2))
{
// throw exception or other handling here for unexcepted values in cells
}
else if (value1 > value2)
{
row.Cells[3].Style.BackColor = Color.PaleGreen;
}
您需要将字符串转换为int、double、long、decimal或任何其他数字。
当前你正在尝试比较两个字符串在一起,如果他们是数字。
使用。value而不使用。tostring()应该可以工作,如果我没记错的话