WinForms事件生命周期

时间:2010-04-25 18:00:21

标签: .net winforms events user-controls

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

2 个答案:

答案 0 :(得分:15)

根据MSDN

主窗体的

启动事件按以下顺序引发:

var ctrl = function($scope, $route, $routeParams) {

  var parts = $routeParams.split('/');  //orders/1/details => ["order", 1, "details"]
  ...
}
主要表单的

关闭事件按以下顺序引发:

Control.HandleCreated
Control.BindingContextChanged
Form.Load
Control.VisibleChanged
Form.Activated
Form.Shown

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

答案 1 :(得分:0)

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