发布网友
共1个回答
热心网友
不用代码演示,原理很简单的。
System.Windows.Forms.Form类中有一个Invalidate()方法成员,它把客户窗口区域标记为无效,并保引发Paint事件。
Invalidate()有几个重载方法,可以给它传送一个矩形参数(Rectangle类型),指定(使用页面坐标)需要重新绘制的窗口区域;如果不提供它任何参数,就把整个客户区域标记为无效;如果绘制区域不是矩形,可以向它传递区域参数(Region类型),Region和Rectangle不同是可以对多个Region做交并差操作,生成复杂的无效区域。
在编程中,根据需要绘图的区域,首先生成这块区域的对象,以该对象作为参数调用Invalidate()方法,就可以引发Paint事件了,这块区域在Paint看来就变成无效区域了。至于绘图是Paint事件处理干的事。
对Paint事件编程,首先根据Paint事件参数获取无效区域,然后在无效区域中按要求绘制就可以了。