您好我想比较两个单元格,两个单元格都有数字值。 如果Cell1大于cell2,则颜色单元为绿色。
这是我的代码:在datagridview中的Cell Formating
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'类型的操作数和'字符串'并在第二行System.Windows.Forms.DataGridViewCell'不包含' BackColor'的定义没有扩展方法' BackColor'接受类型' System.Windows.Forms.DataGridViewCell'的第一个参数。可以找到
答案 0 :(得分:0)
您需要将字符串转换为int,double,long,decimal或任何其他数字。
目前,您正在尝试将两个字符串比较,就好像它们是数字一样。
如果正确记住
,则使用不带.ToString()的.Value应该有效答案 1 :(得分:0)
这两个错误都是有效的。您将单元格值转换为字符串,但如果要将其作为数字进行比较,则需要将它们作为数字。 BackColor也属于单元格的样式属性。所以你的代码应该更像这样:
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;
}