5 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
form_load,發(fā)生在裝載窗體對(duì)象的時(shí)候
form_Activate發(fā)生在窗體得到焦點(diǎn)的時(shí)候
他們觸發(fā)的時(shí)機(jī)完全不同,一個(gè)窗體,正常情況下,在其生存期內(nèi),form_load只會(huì)發(fā)生一次,而form_activate可能會(huì)發(fā)生無(wú)數(shù)次。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
這個(gè)問(wèn)題的實(shí)質(zhì)其實(shí)不是Load 與 Activate的問(wèn)題,
窗體的顯示過(guò)程中,若還沒(méi)加載,則先要加載,這會(huì)觸發(fā)Load事件,如果加載完畢,從不顯示狀態(tài)到顯示狀態(tài)時(shí),要觸發(fā)Activate.
所以Load事件時(shí),窗體還是不可見(jiàn)的,Print上去的東西會(huì)馬上沒(méi)掉。
Activate事件時(shí),窗體已顯示,Print上去的東西還可以看到。但時(shí),如果你將窗口最小化(或被其它窗口遮?。┖筮€原,上面的東西又會(huì)不見(jiàn)了。
因此,問(wèn)題的關(guān)鍵不在于Load事件和Activate事件,而是窗體Print出來(lái)的東西是否維持住(用VB的話說(shuō):一個(gè)持久性的位圖輸出),你可以設(shè)置窗體的AutoRedraw屬性為True,這樣Print出來(lái)的東西就不會(huì)消失,不論在哪個(gè)事件里寫上面的代碼,都會(huì)顯示。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
Load事件:在一個(gè)窗體被裝載時(shí)發(fā)生。當(dāng)使用 Load 語(yǔ)句啟動(dòng)應(yīng)用程序,或引用未裝載的窗體屬性或控件時(shí),此事件發(fā)生。通常,Load 事件過(guò)程用來(lái)包含一個(gè)窗體的啟動(dòng)代碼。Load 事件是在 Intialize 事件之后發(fā)生。
例如,指定控件缺省設(shè)置值,指明將要裝入 ComboBox 或 ListBox 控件的內(nèi)容,以及初始窗體級(jí)變量等。
Activate :當(dāng)一個(gè)對(duì)象成為活動(dòng)窗口時(shí)發(fā)生。一個(gè)對(duì)象可以通過(guò)諸如單擊它,或使用代碼中的 Show 或 SetFocus 方法之類的用戶操作而變成活動(dòng)的。Activate 事件僅當(dāng)一個(gè)對(duì)象可見(jiàn)時(shí)才發(fā)生。例如,除非使用 Show 方法或?qū)⒋绑w的 Visible 屬性設(shè)置為 True,否則,一個(gè)用 Load 語(yǔ)句加載的窗體是不可見(jiàn)的。Activate 事件僅當(dāng)焦點(diǎn)在一個(gè)應(yīng)用程序內(nèi)移動(dòng)時(shí)才發(fā)生。在另一個(gè)應(yīng)用程序中將焦點(diǎn)移向或移離一個(gè)對(duì)象時(shí),不會(huì)觸發(fā)任何一個(gè)事件。Activate 事件在 GotFocus 事件之前發(fā)生,LostFocus 事件在 Deactivate 事件之前發(fā)生。
添加回答
舉報(bào)