【发布时间】:2010-10-25 01:01:11
【问题描述】:
我在 C# 中有一个自定义控件。我注意到调用Refresh 比我想要的慢得多(大约0.1 毫秒),即使我有一个空的RePaint 函数。基本上,我的应用程序处理一个网格,并一个一个地刷新每个网格单元。这种相当低效的行为是设计使然。启用后,我希望能够实际查看每个处理步骤所做的事情,并且每个步骤最终只会更改一个单元格。切换双缓冲没有太大区别。
谁能给点建议?
目前,我想出的最佳改进是将我对Refresh 的调用替换为对Refresh2 的调用。后一个函数是Repaint 的精确副本,除了在顶部添加了两行Graphics g = Graphics.FromHwnd(this.Handle); g.Clear(BackColor); 并将e.Graphics 替换为g。我怀疑这有一些缺点,但它确实将绘图速度减半。请注意,我正在使用的控件没有子组件,因此验证之类的事情没有那么重要。
【问题讨论】:
标签: c# controls drawing refresh