WinForms事件生命周期

Sof*_*eek 17 .net events user-controls winforms

就像Web应用程序中的页面生命周期一样,WinForms的事件生命周期是什么,特别是在表单和用户控件之间?

ard*_*ila 16

根据MSDN:

主窗体的启动事件按以下顺序引发:

Control.HandleCreated
Control.BindingContextChanged
Form.Load
Control.VisibleChanged
Form.Activated
Form.Shown
Run Code Online (Sandbox Code Playgroud)

主窗体的关闭事件按以下顺序引发:

Form.Closing
Form.FormClosing
Form.Closed
Form.FormClosed
Form.Deactivate
Application.ApplicationExit *
Run Code Online (Sandbox Code Playgroud)

我知道这是一个老问题,但我认为我会包含一个实际的答案,因为大多数只是链接.


cdk*_*ose 0

FWIW,您应该小心地对某些容器控件进行生命周期假设。例如,在选项卡控件中,我相信第二个和后面的选项卡上的控件是延迟加载的。这些选项卡上的控件在第一次访问选项卡之前可能不会被实例化/初始化,因此,表单级代码不应假设所有选项卡页面上的所有控件在表单加载完成时都已就位。