问题描述
- C#控件DataGridView 用逐行添加数据的方式 加载速度奇慢无比 求解答
-
大概1000条 16列 如果把数据放到Dataset中然后绑定DataSource 加载基本是瞬间完成,速度很快。
但是如果
foreach{
DataGridViewRow dgvr = this.dataGridView1.Rows[this.dataGridView1.Rows.Add()];
dgvr.Cells["productName"].Value = ps.Name;
...................
...................
}这样逐行添加的话那速度慢到无法忍受,大概30秒左右才完全加载完,并且CPU占用率超高。请问是哪里出了问题?
AutoSizeColumnsMode 和AutoSizeRowsMode 都为none
说分页的、说减少数据的就请免于回答了,我只是想找出问题所在,就是两种方法之间差距的具体原因。
解决方案
加上
dataGridView1.Visible = false;
你的加载代码
dataGridView1.Visible = true;
看看
解决方案二:
加上
dataGridView1.Visible = false;
你的加载代码
dataGridView1.Visible = true;
看看
还是挺慢的
解决方案三:
已经大概找到原因了,因为逐行添加的话需要大量的重绘工作,而又用了devexpress控件的皮肤,重绘异常的慢,实用自带控件,不适用任何皮肤的情况下两者速度差距不大
时间: 2024-10-29 15:56:41