Graphics.Draw *,AutoScroll&剔除

时间:2011-12-14 23:47:57

标签: c# winforms graphics autoscroll onpaint

我在C#/ Winforms中实现了一个自定义控件,它可以处理语法高亮显示等问题。自动完成。我正在使用AutoScroll来管理滚动,它运行良好。

目前我还没有优化(确保优化非常重要,但我最后这样做;功能就是我之前的事情),我正在渲染大量文档,每个按键都会重新解析受影响的行确保语法高亮显示是一致的。

现在,在我的大型油漆方法中,我正在绘制每个字符串,关键字等,即使它位于剪辑区域之外。但不管文件有多大和以及关键字/突出显示位数和组合数量的组合数量我拥有的碎片,它仍然运行得很快,没有太多的记忆和CPU开销。

所以我的问题 - Graphics.Draw *方法做了什么样的剔除?例如:如果AutoScrollPosition位于文档& I Graphics.DrawString(在绘图区域之外插入一些坐标),是否正在进行任何实际工作?还要注意我在Win 7中运行VS在Win 7中,它仍在快速运行。现在并不是一个问题,但是在优化阶段,请记住以后会很好。 :d

干杯, 亚伦

1 个答案:

答案 0 :(得分:1)

根据编写使用Graphics.Draw *方法的游戏的个人经验,如果在调用绘图方法之前执行自己的边界检查,您会注意到速度提升。

尝试在屏幕上绘制内容比在屏幕上绘制内容更快,但它仍然明显慢于不绘制它们。