C#HeatMap DataGridView取决于列单元格值

时间:2017-10-04 12:12:46

标签: c# datagridview background background-color

我正在尝试加热地图数据,以便快速查看和加快分析速度。但是我尝试了几种不同的方式来调用我的依赖。当我运行程序时,我得到错误,“对象不是对象的实例。我的程序在组合框中的不同数据集之间快速切换。所以我必须添加所选组合框项目的条件,所以我可以读取正确的列,因为列具有相同的名称,但始终位于数据集的末尾。这是我现在的编码。

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

是否有另一种方法来调用行,列单元格值?任何帮助是appriciated !!此数据集按此顺序显示列。名称,价格,热度。

1 个答案:

答案 0 :(得分:0)

所以我修复了问题我的热图类在私有的主datagridview类之外。通过在此编码中放置相同的代码。它修复了错误。我猜这是因为datagridview类是私有的而不是公共的。但不确定。我不再接受此错误,颜色显示正常。

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