C# DataGridView 列自动排序时单元格背景色丢失

草根豆 2012-04-12 08:17:06
遇到的问题如题.
一开始我将绘制背景色的话写在 查询按钮下,然后逐行设置背景色.
    
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;
}
}


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

请问有没有什么办法 让在 点击 列表头进行排序时 背景色不丢失啊.
...全文
527 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
secretpp 2013-06-12
  • 打赏
  • 举报
回复
自定义的列没问,如果是从数据源等过来的就有问题
orochiheart 2012-04-28
  • 打赏
  • 举报
回复 1
绑定颜色的代码写在_DataBindingComplete事件中 我以前这么用过 没出现过你的情况呀?
王芜 2012-04-28
  • 打赏
  • 举报
回复
DefaultCellStyle.ForeColor 这个颜色遮住了 那个排序的小三角,排序的 小三角其实是一个背景图片
草根豆 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

DefaultCellStyle.ForeColor =行的背景色?
有没有backcolor属性啊,CellStyle是不是效率不行
[/Quote]

把那个颜色设置成背景色,结果也是一样.

我就是想问一下 除了把代码写到 RowPrePaint() 中外还有没有更好的解决办法..
test2050 2012-04-12
  • 打赏
  • 举报
回复
DefaultCellStyle.ForeColor =行的背景色?
有没有backcolor属性啊,CellStyle是不是效率不行

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧