我正在编写一个使用datagridview加载文本文件并显示m行x n列表的查看器(该表可由用户编辑)。
此查看器的主要目的是将每列中最大值的背景颜色更改为红色,将每列的最小颜色更改为绿色,以及将超过特定阈值的单元格更改为粉红色。 (我使用一个按钮来触发checkMinMax()方法,该方法遍历dataTable的每一列以提取最小/最大/超过的行列表
当我第一次将数据加载到数据表中时,我能够这样做。但是,当我对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?
还是有更好的方法来做我想做的事情?
答案 0 :(得分:1)
在对数据进行排序后,只需回忆一下setCellBackColumn
即可。行突出显示不是动态的,因此您必须回忆它。您可以使用网格的Sorted
事件来执行此操作。不要忘记将默认颜色专门设置为白色,这样就不会保留过时的颜色。