打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
WinForm

Paint事件   

   C#中,窗体、容器、控件的绘制有着一定的顺序。首先绘制容器里的控件,然后绘制窗体上的容器,最后再绘制窗体。可以在控件、容器及窗体的Paint事件处理程序中加入MessageBox.Show方法,然后就可以看出它们的执行顺序:Control.Paint--->Container.Paint--->Form.Paint

   大多数控件都有Paint事件,但有一些控件不具有,如ListBox控件。System.Windows.Forms.Control类是所有控件(没有完全考察)的基类,所以,直接继承它的控件都有Paint事件。但是ListBox是继承至System.Windows.Forms.ListControl,虽然ListControl也继承至Control类,但是它屏蔽掉了Paint事件。(不知道是怎么实现的???)

Load事件

   我们再来看看Load事件和Paint事件的执行顺序。用同样的方法可以发现:窗体的构造方法先于Load事件,Load事件先于Paint事件发生。所以,一定要注意你的一些初始化代码的放置位置。初始化代码最好放在窗体的构造方法中,并且要在InitializeComponent()方法之后。只有窗体或者UserControl这类的最上层的Windows界面才具有Load事件。   

Refresh方法

   每次调用窗体的Refresh()方法时,都将按照控件、容器、窗体的顺序触发它们的Paint事件,执行相应的事件处理程序。也可以只调用某个控件的Refresh方法,而不重绘整个窗体。如果触发某个Container的Paint事件,那么Container内的所有控件的Paint事件也将被触发。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
适用于 Visual Basic 6.0 用户的 WebBrowser 控件
WinForm(一) WinForm入门与基本控件使用
WinForm设置窗体默认控件焦点
ASP.NET 杂记
如何捕捉屏幕鼠标位置
C#高效绘图(转)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服