回答
使用ObjectListView项目中的FastObjectListView
项目 - .NET WinForms ListView控件的一个包装。快速版本是一个虚拟列表,它使用双缓冲来提供无闪烁更新。
我将它用于超过50,000个对象的列表视图,更新时间小于0.5秒(在中档笔记本电脑上)。
但是即使几乎即时更新,您的用户将很难使用每秒更改其内容的控件。
而不是只刷新页面拉入新的内容也许你可以使用jQuery和JSON?
因此,请使用jquery每隔X秒发送一次调用ashx页面的更多信息请求。 ashx页面从数据库中获取数据,然后返回结果值作为json,这样jquery可以轻松地解析结果并显示在屏幕上。
使用下面的jQuery,C#和Web服务做这类事情的伟大教程:
Encosia - using jquery to consume aspnet
希望这是给你一些帮助。
编辑:我的答案假设你使用的是asp.net web窗体。我从来没有使用赢的形式(除了我的旧vb 6天),所以不知道你是否可以使用jQuery或不在那里。
在WinForms应用程序中闪烁的一部分可以通过对其中的窗体和/或控件进行双缓冲来解决。另请参见:Anti Flicker Graphics using Double Buffering
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
或者,查看到Control.DoubleBuffered属性:
在的WinForms,以防止这种闪烁效果,则需要用户一个BackgroundWorker对象在一个单独的线程中运行你的进程。然后,在可接受的时间间隔后,使用BackgroundWorker的ReportProgress适当地更新列表。
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx http://dotnetperls.com/backgroundworker
这将允许您定期调用列表的Refresh()方法不强制闪光,因为流程会在不同的线程。
难道你不觉得列表闪烁只是因为它很大,而不是因为有两个线程,是吗? – 2010-01-21 15:03:35
@Igor - 总是有可能,但我有几个WinForms应用程序,它们的文本框很大。将进程移动到另一个线程并调用Refresh()方法为我清除它。其他用户列出的DoubleBuffering方法也是缓解问题的好方法。我只是想我会发表一个替代的想法。 – 2010-01-21 15:31:27
对于可能的误解抱歉,当我说“大”时,我的意思是“一个非常大的行数”,在这种情况下,需要花费大量时间重新绘制列表框。我认为如果您只是反复调用Refresh(),即使不添加行,它也会闪烁。 – 2010-01-21 15:53:57
- 1. 在几秒钟后刷新JSON数据
- 2. 如何每秒钟刷新Excel文件?
- 3. 用jquery每秒钟刷新一次url
- 4. 表刷新,每秒
- 5. 刷新每XX秒
- 6. C#Winform自动刷新:每5分钟
- 7. Angular2时钟每秒更新
- 8. 每隔几秒钟,C#
- 9. 每秒钟更新GUI的Java秒表?
- 10. 当数据发生变化时每秒钟检查json并刷新页面
- 11. 它每分钟刷新
- 12. 每分钟刷新一次
- 13. 刷新php代码每秒
- 14. 每秒钟检查数据库
- 15. strtotime每刷新一分钟和几秒都会改变原因
- 16. 我怎样才能每15秒钟刷新页面?
- 17. 如何在Windows 7手机中每秒钟刷新图像
- 18. 按钮刷新页面每秒/分钟等?
- 19. 如何刷新每5秒钟内线程中的runOnUiThread?
- 20. 每秒计算时钟数
- 21. C++秒钟分钟
- 22. 每秒钟的最大信号
- 23. c# - 从二进制日志文件读取,每12秒更新一次数据,每6秒钟
- 24. C#TPL每秒更新Gridview每秒
- 25. Kendo UI网格:每60秒用新数据刷新网格数据:dataSource and observe()
- 26. DataGridView滞留一秒钟,大数据更新
- 27. Android:每秒钟更新蓝牙rssi
- 28. 每60分钟刷新一次数据库/服务器
- 29. 有无的widget重载/刷新每2分钟数据
- 30. C#调用方法每分钟55秒
ASP.NET或WinForms? (听起来不像WPF。) – 2010-01-21 14:18:32
我想在Winform中使用它 – Mohsan 2010-01-21 14:22:12