日期:2014-05-17  浏览次数:21078 次

C# DataGridView 列自动排序时单元格背景色丢失
遇到的问题如题.
 一开始我将绘制背景色的话写在 查询按钮下,然后逐行设置背景色.
    
       if (DV.Rows[i].Cells["拣货状态"].EditedFormattedValue.ToString() == "正在拣货")
       {
                        DV.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
       }

但是使用这种方式后,当用户点击列标头进行排序时,行的背景色丢失.
然后将代码写到 
    
        private void DV_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            if (DV.Rows[e.rowindex].Cells["拣货状态"].EditedFormattedValue.ToString() == "正在拣货")
            {
                        DV.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
            }
        }


但是由于数据量比较多,整个数据表格都在闪.

请问有没有什么办法 让在 点击 列表头进行排序时 背景色不丢失啊.

------解决方案--------------------
绑定颜色的代码写在_DataBindingComplete事件中 我以前这么用过 没出现过你的情况呀?