winform下从数据库提取数据后放进table里
通过BindingSource绑定到dataGridView上
利用BindingSource的Filter属性写了查找功能
现在问题是
dataGridView内的数据,需要与一组标准值进行对比(可以以成绩为例),将符合要求的数字更换颜色。
目前我能想到的方式是:
dataGridView第一次显示数据的时候,动态判断,更新颜色;在查找操作执行后(查找操作肯定不止一次的),再进行动态判断,更新颜色。
但这样操作,总感觉影响效率
有其他办法吗?
能在数据放到datatable里后,做点“记号”,避免dataGridView内容变换一次,就要对比更新
通过BindingSource绑定到dataGridView上
利用BindingSource的Filter属性写了查找功能
现在问题是
dataGridView内的数据,需要与一组标准值进行对比(可以以成绩为例),将符合要求的数字更换颜色。
目前我能想到的方式是:
dataGridView第一次显示数据的时候,动态判断,更新颜色;在查找操作执行后(查找操作肯定不止一次的),再进行动态判断,更新颜色。
但这样操作,总感觉影响效率
有其他办法吗?
能在数据放到datatable里后,做点“记号”,避免dataGridView内容变换一次,就要对比更新
解决方案 »
- MVC中如何构建类型IEnumerable<T>的模型项
- remoting服务端插入断点无效?
- c#.net平台中 public Form1()与 private void Form1_Load(object sender, EventArgs e)有什么不一样?
- 水晶报表文本对象怎么输入上标?进来的都有分
- 请问既然Ilist已经继承了ICollection,为何CollectionBase类仍然要同时继承这2个接口?
- 错误:应输入标识符
- webservice: 为什么储存不了图片?(byte[]后)
- 树形结构的中英文切换的列子
- 求助:一个外部程序调用的窗体,如果关闭外部程序再打开,会重复获取输出
- 修改自定义类中属性的可见性问题(动态增减类的属性个数)
- 需要一本好书
- 保存按钮(关于写入文件的问题)
所以想在有没有办法让它 只循环判断一次
我的例子是:
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; //未处理且未完成 白色
}