如果只是画线,可以用异或画线
ControlPaint.DrawReversibleLine
如果图形复杂,可以看一下脏矩形的概念

解决方案 »

  1.   

    只能每次都全部重画,但是可以简单地用一句代码提升20倍的绘图性能.
    在每个绘制语句前都先限定其绘制范围
    g.clip=new region(new rect(....))
    其中的矩形为你本次语句要绘制的图形所在矩形.
      

  2.   


    我使用过clip这个方法,但是有些特例。比如,我画一个10像素粗的矩形。但是我只有矩形的范围,多出来的5个像素(线粗)的范围没有包括进去。
      

  3.   

    可以局部刷新控件。
    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.invalidate(v=vs.110).aspx使用 Invalidate(Rectangle)可指定刷新区域。