【问题标题】:C# HeatMap DataGridView depending on column cell valueC# HeatMap DataGridView 取决于列单元格值
【发布时间】:2018-03-15 19:57:27
【问题描述】:

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

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。意味着不应该有空值,如果是0尚未被后台工作人员更新或更改。
  • 这个错误通常来自于有一个空行;尝试将AllowUserToAddRows 设置为假! ((顺便说一句,您可能想查看these post,其中两个在 dgv 中显示热图 ..))
  • 在检查数据库设置时,它允许在我试图读取的列中出现空值。我删除了那个选项。但仍然得到同样的错误。有 2500 多行。我已将其设置为不允许任何空值。
  • @TaW 感谢您的建议。问题不在于调用颜色或设置颜色,就像我调用颜色的方式一样,系统会自动读取颜色代码。我正在观看有关引用的错误代码和可能的修复的几个视频。我没有用户允许用户添加行,因为数据库如果固定引用。本质上,数据库实际上是通过 api 连接检查的内容列表。从名称列调用,其余列是计算和绘图期间抓取信息的占位符。

标签: c# datagridview background background-color


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多