作者fumizuki (小獅)
看板Visual_Basic
標題表單事件
時間Mon Apr 4 14:17:10 2005
★ 表單載入、顯現、載出時會依序觸發下列幾個事件:
Initialize 表單初始化
Load 表單載入記憶體
Resize 表單大小變更
Activate 表單設為作用中視窗
GotFocus 表單取得焦點
Paint 表單畫面重繪
QueryUnload 表單收到關閉訊息
Unload 表單載出記憶體
Terminate 表單終止化
★ 除了上述事件外,另有下列幾種不會在表單載出時觸發的事件:
LostFocus 表單失去焦點
Deactivate 表單設為非作用中視窗
★ 事件觸發條件
GotFocus 事件
沒有任何控制項的表單會取得焦點,並觸發事件。
含有控制項的表單,不會取得焦點,也不會觸發事件。
如果所有控制項的 Enabled 屬性皆設為 False 時,表單會取得焦點,並觸發事件。
LostFocus 事件
在同一個執行個體中失去焦點,焦點轉到其它的表單時觸發。
如果是焦點轉移到其它執行個體 (例如:記事本),不會觸發此事件。
Deactivate 事件與 LostFocus 事件擁有同樣的特性。
Initialize 事件在程式啟動到程式結束前,只會觸發一次。
Timernate 事件只會在程式結束前觸發。
Paint 事件,當 AutoRedraw 屬性被設為 True 時,不會觸發。
★ 舉例說明
假設,專案中有三個表單,分別為 Form1, Form2, Form3
Form1 有個
開啟按鈕,按下去會打開 Form2 及 Form3
Form3 有個
關閉按鈕,按下去會依序關閉 Form3, Form2, Form1
事件觸發的順序則為:
程式啟動 → Form1.Initialize → Form1.Load → Form1.Resize →
Form1.Activate → Form1.Paint →
按下
開啟按鈕 → Form2.Initialize → Form2.Load → Form2.Resize →
Form3.Initialize → Form3.Load → Form3.Resize →
Form1.Deactivate →
Form2.Activate → Form2.GotFocus →
Form2.LostFocus → Form2.Deactivate →
Form3.Activate →
Form3.Paint →
Form2.Paint →
按下
關閉按鈕 → Form3.QueryUnload → Form3.Unload →
Form2.QueryUnload → Form2.Unload →
Form1.QueryUnload → Form1.Unload →
Form1.Terminate →
Form2.Terminate →
Form3.Terminate → 程式終止
--
人若無星爺,跟條鹹魚有何分別?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.155.162