首页 > 解决方案 > C# DataGridView 动态渐变

问题描述

再会!

我已经阅读了很多关于动态单元格背面颜色变化的内容,但还没有找到解决我的问题的方法。在我的项目中,我使用了 32x32 DataGridView。所有值都是整数,我也将默认单元格格式更改为数字。

此代码使渐变绘画没有任何问题:

void AFRTableGraient()
{
    for (int i = 0; i < dataGridViewTAF.ColumnCount; i++)
    {
        for (int j = 0; j < dataGridViewTAF.RowCount; j++)
        {
            try
            {
                if (dataGridViewTAF.Rows[i].Cells[j].Value == null)
                {
                    break;
                }

                dataGridViewTAF.Rows[i].Cells[j].Style.BackColor = Color.FromArgb(0x10 + (int)dataGridViewTAF.Rows[i].Cells[j].Value, 0x88 + (int)dataGridViewTAF.Rows[i].Cells[j].Value, 0x88 + (int)dataGridViewTAF.Rows[i].Cells[j].Value);
            }
            catch
            {
                break;
            }
        }
    }
    dataGridViewTAF.Update();
    dataGridViewTAF.Refresh();
}

但是我需要在值更改后更改单元格颜色。

我使用过 CellFormatting、KeyDown、CellLeave、CellPainting、Enter 等事件,但没有结果。当我尝试使用 CellPainting 方法时,应用程序被冻结,但没有更新颜色。另外,我尝试使用“计时器”,但仍然没有。

我知道,有一种简单的解决方法,但我需要帮助才能找到它。

谢谢!

标签: c#uitableviewdynamicdatagridview

解决方案


推荐阅读