Invalidate()命令不重新绘制控件

时间:2010-02-12 07:39:50

标签: controls invalidation

我正在尝试开发一个需要绘制一些矩形的自定义控件。现在,需要移动1个矩形,因此我使用覆盖的mousemove方法获取新位置并更改该矩形的位置部分,然后使用Invalidate()命令。但问题是,整个控件被绘制而不是那个矩形。这是令人失望的。如果有人可以指出我做错了什么,那将是一个很大的帮助。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Invallidate()重载来使用部分无效。将一个矩形作为参数传递给Invalidate(),或者你可以传递4个数字来完成它。

Invalidate(new Rectangle(left, top, width, height));

当然你必须使矩形的旧地方和新地方无效。