我正在寻找DataGridView的高效替代方案,最好是免费的。它必须能够按字母顺序和数字顺序排序值,并且能够相对无缝地处理数百行与13列 - 我只需要添加一行,但大部分数据(大约9行)需要每半秒更新一次。 我试过用datagridview,但不幸的是,它只是不够快,我的需求 - 添加,实施的排序是可怕的;例如,数字排序:100,1009,102,102,106,1061,107,108,1115。 任何有效的替代建议? 谢谢!高效的DataGridView备选方案
0
A
回答
0
设置在DataGridView的DoubleBuffered
将提高性能。
了解更多关于这个话题,请参阅“双缓冲在计算机图形学”在维基百科的链接部分:Multiple buffering。
从维基百科:
是很困难的一个程序,绘制显示,这样的像素不 变化超过一次。例如,更新文本的页面时,它 更容易清除整个页面,然后绘制字母比 以某种方式擦除不同时新老 字母的所有像素
在明显的答案link您在您的评论中提到将做的工作 但它使用Reflection
,它是最好避免使用Reflection
时,就有可能实现这一结果没有它。
一个更好的解决方案是创建自己的自定义的datagridview,设置DoubleBuffered,实施您的GUI自定义控件。
例如:
class MyCustomDataGridView: System.Windows.Forms.DataGridView
{
public MyCustomDataGridView(): base()
{
base.DoubleBuffered = true;
}
}
0
@Jonathana真棒!非常感谢!很棒! :) 我为你的答案+1了,但因为我的代表少于15人,所以没有效果....无论如何,这就是解决方案! 另外,对于排序,我真的需要它,因为它是对程序有一部分原因......需要能够根据用户如何希望它是.. 添加了这个入SortCompare方法排序:
if (e.Column.Index > 0 && e.Column.Index <COLUMN_COUNT) //first column is text, default sort is fine..
{
e.SortResult = double.Parse(e.CellValue1.ToString()).CompareTo(double.Parse(e.CellValue2.ToString()));
e.Handled = true;
}
相关问题
- 1. JQuery备用备选方案
- 2. JAVA环回备选方案
- 3. LINQ到SQL高效的解决方案
- 4. 高效解决方案如何? (Facebook&SQL)
- 5. 用于xp的Win32_MountPoint备选方案
- 6. RuntimeHelpers.PrepareDelegate的安全透明备选方案
- 7. 适用于Linux的COleDateTime备选方案
- 8. 企业服务备选方案
- 9. 团队配置文件备选方案?
- 10. Mysql自动增量备选方案
- 11. 寻找每天进行完整备份的备选方案
- 12. Win API中DataGridView的替代方案
- 13. 高效的方式
- 14. 高效的方式
- 15. 高效的方式
- 16. 高效的方式
- 17. 高效的方式
- 18. 高效的方式
- 19. 用于系统任务跟踪的高效DB解决方案
- 20. 合格Haskell列表解析的高效替代方案
- 21. 联盟声明的高效替代方案
- 22. 添加二进制字符串的高效解决方案
- 23. Location.reload更加优雅/高效的解决方案
- 24. 备用SQlite备份解决方案
- 25. 更高效的选择
- 26. AppDomain.CurrentDomain.AppendPrivatePath(“myPath”);备择方案?
- 27. 这两种解决方案哪一种更高效? (Java Hashset)
- 28. 高级DataGridView日期时间筛选器
- 29. 高效的方式simulataneously
- 30. 方程的高效算法
您是否尝试将'DoubleBuffered'设置为您的datagridview? (它可以极大地提高性能)。 – jonathana
@jonathana WOW!哇靠!非常感谢!我我只是看着它,并从代码在此设置: https://stackoverflow.com/questions/4255148/how-to-improve-painting-performance-of-datagridview 有什么区别!这是一个很大的帮助! 现在,有什么特别的,你可能会建议为排序问题? –
DGV数据绑定? – TaW