在缺省情況下,應用程序中的第一個窗體被指定為啟動窗體。應用程序開始運行時,此窗體就被顯示出來(因而最先執行的代碼是該窗體Form_Initialize事件中的代碼)。如果想在應用程序啟動時顯示別的窗體,就得改變啟動窗體,其方法如下:
1從“工程”菜單中,選勸工程屬性”。
2選勸通用”。
3在“啟動對象”下拉列表中,選取要作為新啟動窗體的窗體。
4選勸確定”。
沒有啟動窗體時的啟動
有時候需要在應用程序啟動時不加載任何窗體。例如想先運行裝入數據文件的代碼,然後再根據數據文件的內容決定顯示幾個不同窗體中的哪一個。為此,可在標准模塊中創建一個名為Main的子過程,並將其設為啟動對象。
SubMain()
DimintStatusAsInteger
′調用一個函數過程來檢驗用戶狀態
intStatus=GetUserStatus
′根據狀態顯示某個啟動窗體
IfintStatus=1Then
frmMainShow
Else
frmPasswordShow
EndIf
注意:這個過程必須是一個子過程,且不能在窗體模塊內。
結束應用程序
當所有窗體都已關閉並且沒有代碼正在執行時,事件驅動的應用程序就停止運行。如果最後一個可見窗體關閉時仍有隱藏窗體存在,那麼,應用程序表現為已經結束了(因為沒有可見的窗體),可實際上卻仍在繼續運行,直至所有隱藏窗體都關閉為止。之所以出現這種情況,是因為對已卸載窗體的屬性或控件的任何訪問,都將導致隱含地、不予顯示地加載那個窗體。
為了避免出現這類問題,最好的辦法是確保所有的窗體都已卸載,可以使用Forms集合和Unload語句。例如在主窗體上可以用一個名為cmdQuit的命令按鈕來退出程序,如果應用程序只有一個窗體,則Click事件過程可簡單為:PrivateSubcmdQuit_Click()UnloadMeEndSub如果應用程序使用多窗體,通常把代碼放入主窗體的Unload事件過程可以卸載這些窗體。可以使用Forms集合確保找到並關閉所有窗體。
PrivateSubForm_Unload
DimiasInteger
′在窗體集合中循環並卸載每個窗體
Fori=0toFormsCount-1
UnloadForms(I)
Next
EndSub->