2016-10-04 144 views
0

您好,我想比較兩個單元格,它們都具有數字值。 如果Cell1大於cell2,則顏色單元爲綠色。如果DataGridView的單元格值大於另一個單元格

這裏是我的代碼:在單元格格式化中的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; 
      } 

,但我得到了兩個錯誤:在第一線操作員「>」不能應用於類型「串」和「串」和操作數第二行System.Windows.Forms.DataGridViewCell'不包含'BackColor'的定義,並且沒有可接受類型'System.Windows.Forms.DataGridViewCell'的第一個參數的擴展方法'BackColor'

回答

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; 
    } 
+0

誤差只有轉讓,電話,遞增,遞減和新對象表達式可以用作聲明 – user6894907

+0

對不起,該代碼固定小語法錯誤... – rmc00

+0

我在這一行中得到這個錯誤:else(value1> value2); – user6894907

0

您需要將字符串轉換爲int,double,long,decimal或任何其他數字。

當前您正試圖比較2個字符串,就好像它們是數字一樣。

使用.value的無的ToString()如果j正確

相關問題