5 回答

TA貢獻1777條經驗 獲得超10個贊
form_load,發生在裝載窗體對象的時候
form_Activate發生在窗體得到焦點的時候
他們觸發的時機完全不同,一個窗體,正常情況下,在其生存期內,form_load只會發生一次,而form_activate可能會發生無數次。

TA貢獻1829條經驗 獲得超9個贊
這個問題的實質其實不是Load 與 Activate的問題,
窗體的顯示過程中,若還沒加載,則先要加載,這會觸發Load事件,如果加載完畢,從不顯示狀態到顯示狀態時,要觸發Activate.
所以Load事件時,窗體還是不可見的,Print上去的東西會馬上沒掉。
Activate事件時,窗體已顯示,Print上去的東西還可以看到。但時,如果你將窗口最小化(或被其它窗口遮?。┖筮€原,上面的東西又會不見了。
因此,問題的關鍵不在于Load事件和Activate事件,而是窗體Print出來的東西是否維持?。ㄓ肰B的話說:一個持久性的位圖輸出),你可以設置窗體的AutoRedraw屬性為True,這樣Print出來的東西就不會消失,不論在哪個事件里寫上面的代碼,都會顯示。

TA貢獻1818條經驗 獲得超8個贊
Load事件:在一個窗體被裝載時發生。當使用 Load 語句啟動應用程序,或引用未裝載的窗體屬性或控件時,此事件發生。通常,Load 事件過程用來包含一個窗體的啟動代碼。Load 事件是在 Intialize 事件之后發生。
例如,指定控件缺省設置值,指明將要裝入 ComboBox 或 ListBox 控件的內容,以及初始窗體級變量等。
Activate :當一個對象成為活動窗口時發生。一個對象可以通過諸如單擊它,或使用代碼中的 Show 或 SetFocus 方法之類的用戶操作而變成活動的。Activate 事件僅當一個對象可見時才發生。例如,除非使用 Show 方法或將窗體的 Visible 屬性設置為 True,否則,一個用 Load 語句加載的窗體是不可見的。Activate 事件僅當焦點在一個應用程序內移動時才發生。在另一個應用程序中將焦點移向或移離一個對象時,不會觸發任何一個事件。Activate 事件在 GotFocus 事件之前發生,LostFocus 事件在 Deactivate 事件之前發生。
添加回答
舉報