1

我正在使用 datagridview 编写查看器来加载文本文件并显示 m 行 xn 列表(该表可由用户编辑)。

此查看器的主要目的是将每列中最大值的背景颜色更改为红色,将每列的最小值更改为绿色,并将超过某个阈值的单元格更改为粉红色。(我使用按钮触发 checkMinMax() 方法,该方法遍历 dataTable 的每一列以提取 min/max/exceed 的行列表)

当我第一次将数据加载到数据表中时,我能够做到这一点。但是,当我对 datagridview 进行排序并再次调用 checkMinMax() 时,颜色仍固定在旧位置。

public void setCellBackColor (List<int> rows, int col, Color color)
{
    foreach (int row in rows)
    { 
        dataGridView_data.Rows[row].Cells[col].Style.BackColor = color;  
    }
}

我知道我使用的是数据表的索引,而不是 datagridview 的 rowId。所以我的问题是是否有办法将我的数据表的索引映射到rowId?

还是有更好的方法来做我想做的事?

4

1 回答 1

1

setCellBackColumn只需在对数据进行排序后回忆一下。行高亮不是动态的,所以你必须回忆它。Sorted您可以通过使用网格的事件来做到这一点。不要忘记将默认颜色专门设置为白色,这样它就不会保留过时的颜色。

于 2012-04-09T02:32:38.307 回答