在WinForm中如何给DataGridView高效着色? 发现用了着色功能,网格显示很慢,占CPU高。dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Cyan;前景色也是一样。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 另外在行绘制时着色应当可以效率高些,在RowPostPaint 事件中着色。 DataGridViewCellStyle 不使用颜色,速度如何 void dg.CellPainting(){ //才几行数据,[不使用颜色]或[只对IsChk着色]很快/米 //1 这样很直观,但很慢。 if ((bool)r["IsChk"]) dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Cyan; //确认 if ((bool)r["IsApv"]) dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.DarkCyan; //审核米/ //2 改为这样就不慢了 if ((bool)r["IsApv"]) //是否已审核 { dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.DarkCyan; } else { if ((bool)r["IsChk"]) //是否已确认 { dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Cyan; } }}在第1种方法中,是不是在付DefaultCellStyle值的时候CellPainting嵌套了? //看来真是CellPainting嵌套了//这样直观,速度也快了DataGridViewCellStyle sty=new DataGridViewCellStyle();if ((bool)r["IsChk"]) { sty.BackColor = Color.Cyan; }if ((bool)r["IsApv"]) { sty.BackColor = Color.DarkCyan; }dg.Rows[e.RowIndex].DefaultCellStyle = sty; 有一个20M的文本文件,如何通过网页导入到oracle数据呢? spring.net 创建对象失败 反编译dll文件工具 字符串查找 程序打包都需要哪些文件? axRealAudio里面的进度条怎么设置高度? 囧,这个正则表达式在VS中如何表示? 我用GridView分页,在全选中的问题! 为什么在使用Application.RunDialog()时候会有这样的问题? C# npoi 怎么获取自动换行以后的 行高? 求助~~多线程问题!用多个线程调用一个方法! 窗体程序只运行一次,第二次启动激活该窗体的问题
不使用颜色,速度如何
{
//才几行数据,[不使用颜色]或[只对IsChk着色]很快/米
//1 这样很直观,但很慢。
if ((bool)r["IsChk"]) dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Cyan; //确认
if ((bool)r["IsApv"]) dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.DarkCyan; //审核
米/ //2 改为这样就不慢了
if ((bool)r["IsApv"]) //是否已审核
{
dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.DarkCyan;
}
else
{
if ((bool)r["IsChk"]) //是否已确认
{
dg.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Cyan;
}
}
}
在第1种方法中,是不是在付DefaultCellStyle值的时候CellPainting嵌套了?
//这样直观,速度也快了
DataGridViewCellStyle sty=new DataGridViewCellStyle();
if ((bool)r["IsChk"]) { sty.BackColor = Color.Cyan; }
if ((bool)r["IsApv"]) { sty.BackColor = Color.DarkCyan; }
dg.Rows[e.RowIndex].DefaultCellStyle = sty;