2017-10-04 36 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类是私有的而不是公共的。但不确定。我不再收到这个错误,颜色正常显示。

谢谢大家的答复和答案。他们确实让我走上了解决问题的正确道路。

相关问题