Windows 窗体启动和关闭的事件顺序
本文系轉載學習。
對于關注對 Windows 窗體應用程序中引發的每個事件按次序進行處理的開發人員來說,事件引發的順序特別重要。當某種情況需要小心處理事件時(如重繪窗體的某些部分時),必須知道事件在運行時的確切引發順序。本文提供了一些有關在應用程序和控件的生命周期中的幾個重要階段中的事件順序的詳細信息。
對于驗證這些事件的激發順序有一個很簡單的方法,就是創建這些事件的處理函數,即使什么事情都不做。然后在每個函數的入口處設置斷點,對程序進行調試運行,看到達斷點順序就可以了。
當 Windows 窗體應用程序啟動時,主窗體的啟動事件按以下順序引發
1、System.Windows.Forms.Control.HandleCreated
在為控件創建句柄時發生
2、System.Windows.Forms.Control.BindingContextChanged?
當 BindingContext 屬性的值更改時發生
注:每個 Windows 窗體至少有一個?BindingContext?對象,詳見MSDN
3、System.Windows.Forms.Form.Load?
在第一次顯示窗體前發生
4、System.Windows.Forms.Control.VisibleChanged?
在 Visible 屬性值更改時發生
注:如果通過編程修改或用戶交互更改 Visible 屬性,則將引發此事件
5、System.Windows.Forms.Form.Activated?
當使用代碼激活或用戶激活窗體時發生
6、System.Windows.Forms.Form.Shown?
只有在首次顯示窗體時才會引發 Shown 事件;隨后執行的最小化、最大化、還原、隱藏、顯示或無效化和重新繪制操作都不會引發該事件。
?
當應用程序關閉時,主窗體的關閉事件按以下順序引發:
1、System.Windows.Forms.Form.Closing?
在關閉窗體時發生
注意:在 .NET Framework 版本 2.0 中,Closing 事件已過時,應改用 FormClosing 事件。
2、System.Windows.Forms.Form.FormClosing?
在關閉窗體前發生,此時可以取消窗體的關閉。
3、System.Windows.Forms.Form.Closed?
關閉窗體后發生
注意:在 .NET Framework 版本 2.0 中,Closed 事件已過時,應改用 FormClosed 事件。
4、System.Windows.Forms.Form.FormClosed?
關閉窗體后發生
5、System.Windows.Forms.Form.Deactivate?
當窗體失去焦點并不再是活動窗體時發生
注意:當調用 Application.Exit 方法以退出應用程序時,不引發 Form.Closed 和 Form.Closing 事件,但是會激發 Form.FormClosed 和 Form.FormClosing 事件。
轉載于:https://www.cnblogs.com/joy99/p/5148830.html
總結
以上是生活随笔為你收集整理的Windows 窗体启动和关闭的事件顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux服务器通过rz/sz轻松上传下
- 下一篇: 使用pngquant来压缩png资源缩小