dataGridView 内字体颜色动态变化问题

Johnny_Depp 2009-04-21 08:39:00
winform下

从数据库提取数据后放进table里
通过BindingSource绑定到dataGridView上
利用BindingSource的Filter属性写了查找功能


现在问题是
dataGridView内的数据,需要与一组标准值进行对比(可以以成绩为例),将符合要求的数字更换颜色。
目前我能想到的方式是:
dataGridView第一次显示数据的时候,动态判断,更新颜色;在查找操作执行后(查找操作肯定不止一次的),再进行动态判断,更新颜色。


但这样操作,总感觉影响效率
有其他办法吗?
能在数据放到datatable里后,做点“记号”,避免dataGridView内容变换一次,就要对比更新
...全文
606 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishowlxh 2009-07-20
  • 打赏
  • 举报
回复
在datagridview的CellPainting事件里写代码。
我的例子是:
private void dataGridView2_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
int kk = dataGridView2.Rows.Count-1;
for (int jj = 0; jj < kk; jj++)
if (dataGridView2.Rows[jj].Cells["完成与否"].Value.ToString().Trim().Equals("完成"))
{
dataGridView2.Rows[jj].DefaultCellStyle.BackColor = Color.Gainsboro;//完成 灰色

}

else if (dataGridView2.Rows[jj].Cells["处理时间"].Value != null && dataGridView2.Rows[jj].Cells["处理时间"].Value.ToString().Trim() != "")
dataGridView2.Rows[jj].DefaultCellStyle.BackColor = Color.Yellow; // 已经处理且未完成 黄色
else dataGridView2.Rows[jj].DefaultCellStyle.BackColor = Color.White; //未处理且未完成 白色
}
Johnny_Depp 2009-04-25
  • 打赏
  • 举报
回复
cell改变时 触发的事件里写??

那样次数不是更多了......
liyunfengleo 2009-04-24
  • 打赏
  • 举报
回复
你可以在cell的值改变时写
Johnny_Depp 2009-04-24
  • 打赏
  • 举报
回复
?????
Johnny_Depp 2009-04-22
  • 打赏
  • 举报
回复
ding
LoveLife_Go 2009-04-22
  • 打赏
  • 举报
回复
你在datatable里加一列,绑定的时候,也得循环判断啊,只不过是换了一个字段而已

暂时没想出什么好的办法
01Byte空间 2009-04-22
  • 打赏
  • 举报
回复
bu不明白
Johnny_Depp 2009-04-22
  • 打赏
  • 举报
回复
LS没看懂我的意思吧
Johnny_Depp 2009-04-22
  • 打赏
  • 举报
回复
因为 第一次 绑定后,该有的数据都有了

后面的查询只不过是通过BindingSource的Filter属性 对显示内容做过过滤
所以想在有没有办法让它 只循环判断一次
cstester 2009-04-21
  • 打赏
  • 举报
回复
dataGridView.Column[0].ForeColor

111,126

社区成员

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

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

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