如何防止GDI +重新绘制油漆上的所有内容?

时间:2012-03-25 17:01:28

标签: c# gdi+

我想改变使用GDI +绘制自身的控件的某些部分的颜色,例如,当某些对象被悬停/点击时。例如。

如何仅重新绘制必要的部分?当我只需要对其中一些像素进行更改时,重新绘制数千个像素似乎很糟糕。

具体来说,我已经绘制了1到128个矩形,我将需要在各种事件中重新绘制1到128个矩形。我不想重新绘制128个矩形,只能更改为1-127。

我已经读过,在不是on paint事件的地方使用绘图代码是一个的想法。但是,依靠油漆事件可以做到这一点吗?

1 个答案:

答案 0 :(得分:6)

您可以使用Control.Invalidate方法之一指定要重绘的区域 然后在Paint事件处理程序中,您可以使用e.ClipRectangle属性检查无效区域。