2017-10-04 75 views
0

我正在試圖加熱地圖數據以便快速查看和更快的分析。然而,我嘗試了幾種不同的方式來調用我的依賴。當我運行程序時,我得到錯誤,「對象不是對象的一個​​實例,我的程序在組合框的不同數據集之間快速變化,所以我必須添加條件來選擇組合框項目,所以我可以讀取正確的列,當列具有相同的名稱,但總是在數據集的結尾。這裏是編碼我有現在。C#HeatMap DataGridView取決於列單元格的值

public void heatmap() 
    { 
     string selected = comboBox1.SelectedItem.ToString(); 
     if (selected == "General") 
     { 
      for(int i = 0; i < dataGridView1.Rows.Count; i++) 
      { 
       int val = Int32.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());     
       //No Change 
       if (val == 0) 
       { 
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.WhiteSmoke; 
       } 
       //Big Drop 
       else if (val == 1) 
       { 
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Navy; 

       } 
       // Slight Drop 
       else if (val == 2) 
       { 
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.LightBlue; 
       } 

       // Slight Raise 
       else if (val == 3) 
       { 
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.OrangeRed; 
       } 

       // Big Raise 
       else if (val == 4) 
       { 
        dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red; 
       } 

有另一種方式時行,列單元格值調用??任何幫助這個數據集顯示在這個順序列名稱,價格,熱

+0

可能重複[什麼是NullReferenceException,以及如何解決它?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix -it) – Sinatr

+0

謝謝你,我會仔細檢查數據庫,它應該被設置爲不允許空值,行數據的默認值應該被設置爲0.意味着不應該有空值,如果它沒有被更新,只是一個0然後或由後臺工作人員更改。 –

+0

通常這個錯誤來自有一個emtpy行;嘗試將'AllowUserToAddRows'設置爲false! ((順便說一句,你可能想看看[這些帖子](https://stackoverflow.com/search?q=user%3A3152130+heatmap),其中兩個在dgv中顯示熱圖)。) – TaW

回答

0

所以我解決了這個問題我的heatmap類是在主datagridview類是私人的外部通過將相同的代碼放在這個編碼它修復了錯誤。我猜想這是由於datagridview類是私有的而不是公共的。但不確定。我不再收到這個錯誤,顏色正常顯示。

謝謝大家的答覆和答案。他們確實讓我走上了解決問題的正確道路。

相關問題