Windows 窗體啟動和關閉的事件順序

2021-09-07 09:48:26 字數 1410 閱讀 4576

對於關注對 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 

當窗體失去焦點並不再是活動窗體時發生

Windows 窗體啟動和關閉的事件順序

對於關注對 windows 窗體應用程式中引發的每個事件按次序進行處理的開發人員來說,事件引發的順序特別重要。當某種情況需要小心處理事件時 如重繪窗體的某些部分時 必須知道事件在執行時的確切引發順序。本文提供了一些有關在應用程式和控制項的生命週期中的幾個重要階段中的事件順序的詳細資訊。對於驗證這些事...

windows 啟動關閉Oracle監聽和服務

經常要用資料庫,讓他自己啟動的話,開機太慢,所以用命令啟動方便點。1.開啟 在執行中輸入cmd,進入控制台,lsnrctl start回車,提示啟動監聽成功後 net start oracleserviceorcl。2 關閉 在執行中輸入cmd,進入控制台,lsnrctl stop回車,提示啟動監聽...

windows 啟動關閉Oracle監聽和服務

經常要用資料庫,讓他自己啟動的話,開機太慢,所以用命令啟動方便點。1.開啟 在執行中輸入cmd,進入控制台,lsnrctl start回車,提示啟動監聽成功後 net start oracleserviceorcl。2 關閉 在執行中輸入cmd,進入控制台,lsnrctl stop回車,提示啟動監聽...