C# winform中事件执行顺序

进入控件时:先激发OnEnter然后是OnGotFocus

离开控件时:先激发OnLostFocus然后是OnLeave

单击键盘时:先激发OnKeyDown然后是OnKeyPress然后是OnKeyUp 然后是OnTextChanged

Load事件

窗体的构造方法Form1()先执行,其次Load事件,然后是Paint事件。一些变量初始化时应注意代码的放置位置。初始化代码最好放在窗体的构造方法中,并且要在InitializeComponent()之后。只有窗体或者UserControl这类的最上层的Windows界面才具有Load事件。

Paint事件

C#中,窗体、容器、控件都能的绘制有着一定的顺序。首先绘制容器里的控件,然后绘制窗体上的容器,最后再绘制窗体。

Refresh方法

调用窗体的Refresh()方法时,都将按照控件、容器、窗体的顺序触发它们的Paint事件。也可以只调用某个控件的Refresh方法,而不重绘整个窗体。如果触发某个Container的Paint事件,那么Container内的所有控件的Paint事件也将被触发。当窗体被其他窗体覆盖,也会引起paint事件。

当窗体和控件重绘时可以利用 WndProcj截获消息处理消息完成。