c# windows form 生命周期 (Life cycle) 事件 顺序 窗口 初始化
____________________________________________________________________________________________________________________
微软官方的文档:
form 打开:
•    Control.HandleCreated
•    Control.BindingContextChanged
•    Form.Load
•    Control.VisibleChanged
•    Form.Activated
•    Form.Shown
from 关闭:
•    Form.Closing
•    Form.FormClosing
•    Form.Closed
•    Form.FormClosed
•    Form.Deactivate

control ,change focus:(使用 tab ,shift + tab等等,或是调用Select,SelectNextControl,或是使用当前form的ActiveControl)
•    Enter
•    GotFocus
•    Leave
•    Validating
•    Validated
•    LostFocus

control ,change focus:(使用鼠标,或是通过调用Focus方法)
•    Enter
•    GotFocus
•    LostFocus
•    Leave
•    Validating
•    Validated
____________________________________________________________________________________________________________________


Move,Load,VisibleChanged 以及 Activated 事件在form显示之前就触发了。

事件的含义:

  • Move: This event occurs when the form is moved. Although by default, when a form is instantiated and launched, the user does not move it, yet this event is triggered before the Load event occurs.
  • Load: This event occurs before a form is displayed for the first time.
  • VisibleChanged: This event occurs when the Visible property value changes.
  • Activated: This event occurs when the form is activated in code or by the user.
  • Shown: This event occurs whenever the form is first displayed. 
  • Paint: This event occurs when the control is redrawn.
  • Deactivate: This event occurs when the form loses focus and is not the active form.
  • Closing: This event occurs when the form is closing.
  • Closed: This event occurs when the form is being closed.

Explain the key events in the lifecycle of the form.

a. Load: fired when form is first loaded in the application
b. Activated: fired whenever the form gets the focus i.e. when loaded first time, restored from the minimize state, whenever the form is brought in front.
c. Deactivated: fired whenever the form looses focus i.e. when form is closed, minimized, when it is in background.
d. Closing: Triggered when application wishes to be closed.
e. Closed: Triggered when application is closed.
f. Disposed: Used for garbage collection.



事件的顺序:


Form Events:

  • Construtor
  • Load
  • Layout
  • Activated
  • Paint­
  • Closing
  • Closed
  • Deactivate
  • Dispose

and for Controls:

  • Enter 
  • GotFocus 
  • Leave 
  • Validating 
  • Validated 
  • LostFocus

另一个版本的form event 顺序


Load
VisibleChanged
Activated
Shown
Paint
Deactivate
Activated
Paint
Formclosing
FormClosed
Deactivate



 Form Startup

  1. OnHandleCreated
  2. OnCreateControl
  1. OnLoad
  1. OnActivated
  2. OnShown

Form Shutdown

  1. OnClosing
  2. OnClosed
  3. OnDeactivate
  4. OnHandleDestroyed