如何将datatable的索引映射到datagridview的rowId?

时间:2012-04-09 02:01:16

标签: c#

我正在编写一个使用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?

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

1 个答案:

答案 0 :(得分:1)

在对数据进行排序后,只需回忆一下setCellBackColumn即可。行突出显示不是动态的,因此您必须回忆它。您可以使用网格的Sorted事件来执行此操作。不要忘记将默认颜色专门设置为白色,这样就不会保留过时的颜色。