Mar*_*ark 3 c# datatable datagridview backgroundworker winforms
我有一个DataTable,完全填充,我想设置为DatagridView:
gdv.DataSource = dt;
Run Code Online (Sandbox Code Playgroud)
然而,这非常缓慢.DataTable的填充速度非常快,但上面这一行需要很长时间.有没有办法加快速度或在另一个线程中执行它?
在这一点之后没有互动.只是上面的简单陈述!
谢谢.
这是一个修复.问题是框架在新数据源中每行重新调整一次列的大小(为什么??).当然,每次都需要遍历所有行,从而产生O(n ^ 2)运算.很遗憾看起来你必须在设置数据源之前关闭自动调整大小,然后手动调用AutoResizeColumns方法.
grdChanges.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
grdChanges.DataSource = schemaChangesSpreadsheet.Changes
grdChanges.AutoResizeColumns(DataGridViewAutoSizeColumnMode.AllCells)
Run Code Online (Sandbox Code Playgroud)
事实证明,Microsoft告诉您在文章"扩展Windows窗体DataGridView控件的最佳实践"中执行此操作,如果您有不同的UI设置具有相同的繁重计算问题,这可能会对您有所帮助.
http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx
| 归档时间: |
|
| 查看次数: |
6894 次 |
| 最近记录: |