DataGridView为一张40行*40列的表,并且为了能够使整体都显示在一个界面上,每个单元格的数据在加载的时候都需要设置小字号,并根据数据显示不同加载不同的颜色。现在出现了加载速度过慢的现象,发现VirtualMode并不太适合我的需求,求一个加载速度更快的方法,只是思路也行,谢谢~
40*40列的数据并不算太多,也还用不上VirtualMode。
1、每列的数据大约多少?是否有某列数据特别多?
2、速度问题是否因为颜色显示造成的?
第一个问题:是40行*40列的表,每个单元格里都是姓名
第二个问题:,调用颜色用的是一个方法,就是
单元格.BackColor = GetColor(int.Parse(Names.Rows[j]["状态"].ToString()));
先谢谢您关注这个问题~。~
@爱钻牛角尖的程序猿: 你没有回答我的问题,
速度问题你要懂得分开看。
1、只加载数据,多少时间。
2、记录一下,每10个单元格或者一个单元格的GetColor这个函数执行的时间。
System.Environment.Tickcount这个函数你会用吧?
@爱编程的大叔:
没用过,不过以下是加载颜色的方法,很占时间么?
private Color GetColor(int state)
{
Color c = new Color();
switch (state)
{
case 0:
c = Color.DarkKhaki;
break;
case 1:
c = Color.WhiteSmoke;
break;
case 2:
c = Color.Silver;
break;
case 3:
c = Color.LightGreen;
break;
case 4:
c = Color.Tomato;
break;
}
return c;
}
@爱编程的大叔: 或者说是不是我在每一步操作的时候都用了很占用时间的方法,所以到最后加载出来数据的时候就很慢?
@爱钻牛角尖的程序猿: 性能分析,最土也是最简单的方法,就是拆成多个过程。
象你这个就是可以把颜色的功能代码先关闭,看看效果。
而这个GetColor也是可以比较容易测出运行时间的。
专业一点的就是运行VS中的性能测试工具。你有空可以找本书或是GOOGLE相关内容学习一下。这个可以测试看出每个函数运行的次数及时间占用比例。
因为不恰当的使用事件,可能导致每个函数重复运行N次。
@爱编程的大叔: 恩,好吧,我先从代码上开始优化, 尽量做到精简,谢谢
@爱编程的大叔: 如果您允许的话,我想加一下您的QQ。遇到难题的话可以问问您。不强求的。