如果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 '的第一个参数。

如果DataGridView单元格值大于另一个单元格

这两个错误都是正确的。你将单元格值转换为字符串,但如果你想把它们作为数字进行比较,那么你需要把它们变成数字。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()应该可以工作,如果我没记错的话

相关文章: