手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

winform绘图之OnPaint事件

时间:2024-10-12 21:23:25

1、首先小编这里创建一个winform程序,然后在窗口中有一个按钮,点击按钮在左侧画出一个绿色的长方形,为了防止正方形因为窗口失去焦点或者放大缩小等事件消失,这里实现窗口的Paint事件,如下图:

winform绘图之OnPaint事件

2、从下图的程序代码中可以看出,点击按钮是在窗口的左侧画出一个绿色的长方形,然后在窗体执行Paint事件的时候,在窗口的左侧画出一个紫色的长方形,如下图:

winform绘图之OnPaint事件

3、运行程序可以看到鼠标点击事件以及窗体的Paint事件正常运行,如下图:

winform绘图之OnPaint事件
winform绘图之OnPaint事件

4、接下来小编在程序中重写OnPaint事件,并且在OnPaint事件中不实现任何功能,如下图:

winform绘图之OnPaint事件

5、运行程序可以发现,按钮事件正常,但是Paint事件却不执行了,如下图:

winform绘图之OnPaint事件

6、接下来,在重写的OnPaint事件中加入代码base.OnPaint(),如下图:

winform绘图之OnPaint事件

7、运行程序可以看到,按钮点击事件以及Paint事件都又正常执行了。

winform绘图之OnPaint事件

8、综上所述,程序在执行的时候,窗体发生改变,如被其他窗体覆盖或者放大缩小时,程序会调OnPaint事件,如果OnPaint事件中有代码base.OnPaint(),程序会继续调用程序中的Paint事件,否则只是执行OnPaint方法,所以OnPaint具有优先性质。

© 手抄报圈