




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9章多重窗體與環境應用9.1多重窗體9.2VisualBasic工程結構
第9章多重窗體與環境應用9.1多重窗體9.2Vi19.1多重窗體
9.1.1多重窗體管理
9.1.2設置啟動窗體
9.1.3窗體處理
9.1.4多重窗體應用實例
9.1多重窗體9.1.1多重窗體管理29.1.1多重窗體管理1.向工程中添加窗體向工程中添加新窗體有以下三種方法:⑴選擇“工程”→“添加窗體”菜單,在打開的“添加窗體”對話框中,選擇“窗體”打開,即向工程中添加一個新窗體。新窗體的默認名稱和標題(Caption屬性)均由集成開發環境自動排列確定,如第二個創建的窗體,其默認的名稱為Form2,標題為Form2。⑵從工具欄上選擇“添加窗體”按鈕,向工程中添加一個新窗體。⑶在工程資源管理器中選定“工程”,單擊右鍵打開快捷菜單,選則“添加”→“添加窗體”選項,也可創建一個新窗體。9.1.1多重窗體管理32.移除工程中的窗體移除工程中多余的窗體有以下兩種方法:⑴在工程資源管理器窗口中選定要刪除的窗體,選擇“工程”→“移除窗體”菜單項。⑵在工程資源管理器中選中要刪除的窗體,單擊右鍵彈出其快捷菜單,選取“移除窗體”選項。3.保存窗體在多重窗體應用程序中,每個窗體都要單獨保存,方法同單一窗體應用程序一樣。在工程資源管理器窗口中選定要保存的窗體,選擇“文件”→“保存窗體”菜單或“窗體另存為”菜單,或者在工程資源管理器中打開快捷菜單,選取“保存窗體”或“窗體另存為”選項。每個窗體保存后都生成一個擴展名為“.frm”的文件。2.移除工程中的窗體49.1.2設置啟動窗體在多重窗體應用程序中,由于應用程序由多個窗體組成,就是由多個界面組成,因此在程序開始運行時,必須有一個窗體是首先出現的,即啟動窗體。VB集成開發環境在創建新工程時,把窗體Form1作為系統缺省的啟動窗體。如果用戶在實際應用或在調試程序中希望把某個窗體作為啟動窗體,在程序運行時首先出現在屏幕上,可用以下方法實現:選擇“工程”→“工程屬性”菜單,在“工程屬性”對話框中選中“通用”選項卡。在“啟動對象”下拉列表中顯示了該工程所有的窗體和“SubMain”過程,用戶可以根據需要進行選擇。若選用SubMain過程作為啟動對象,則在程序啟動時不加載任何窗體,而是運行一個SubMain過程,然后根據程序代碼來決定是否加載窗體或加載哪一個窗體。9.1.2設置啟動窗體59.1.3窗體處理在使用相關語句和方法前,大家有必要先了解窗體在應用程序中的三種存在形式:沒有被加載:這時,窗體雖然是應用程序的構件,但并沒有正式成為項目的組成部分,即窗體不會占用系統資源。加載但沒有顯示:這時,窗體已經被加載,成為項目的組成部分,但并沒有顯示出來。加載并顯示:這時,窗體已經被正式顯示出來,當然窗體一定要被加載后才能顯示出來。9.1.3窗體處理6如果應用程序中只有一個窗體,在程序運行時這個窗體會被自動加載并顯示出來。如果應用程序由多個窗體組成,則會有一個窗體被設置為啟動窗體。在程序運行時啟動窗體同樣被自動加載并顯示,而其他的窗體則必須在已經啟動的窗體中進行加載或顯示,這就要用到下面幾個相關語句和方法。1.Load語句格式:Load<窗體名稱>該語句用于將一個窗體裝入內存。執行Load語句后,窗體處于“加載但沒有顯示”狀態,此時可以引用窗體中的控件及各種屬性,但窗體沒有顯示出來。如果應用程序中只有一個窗體,在程序運行時這個72.Unload語句格式:Unload<窗體名稱>該語句用于卸載內存中指定的窗體,與Load語句的功能相反。執行Unload語句后,窗體處于“沒有被加載”狀態,不會占用系統資源。注:應用程序結束后,應卸載所有的窗體,否則會出現這種現象,即應用程序雖已表現為結束狀態,但實際上某個窗體仍處于隱藏狀態,并占用一定系統資源。Windows系統本身不會自動處理此類問題,這對于程序的運行是極為不利的。為了避免這種情況,應在結束程序前使用Unload語句將窗體從內存中刪除。2.Unload語句83.Show方法格式:[窗體名稱].Show[模式]該方法用于顯示一個窗體。執行Show方法后,窗體處于“加載并顯示”狀態。窗體名稱:可選項,缺省時為當前窗體。模式值:可選項,取值0(默認值)或1,用以決定窗體是非模態還是模態。模式值為0時,窗體為非模態,此時用戶可對其他窗體進行操作;模式值為1時,窗體為模態,此時用戶不能對其他窗體進行操作,直到該窗體關閉為止。注:該方法兼有裝入和顯示窗體兩種功能。也就是說,在執行Show方法時,如果窗體沒有裝入內存,則執行時Show方法會自動把窗體裝入內存,然后顯示出來。3.Show方法94.Hide方法格式:[窗體名稱].Hide該方法用于將窗體隱藏起來。執行Hide方法后,窗體處于“加載但沒有顯示”狀態,即窗體仍在內存中,但窗體沒有顯示出來,與窗體卸載有本質的區別。4.Hide方法109.1.4多重窗體應用實例和單一窗體的程序設計一樣,多重窗體程序設計也基本上分為5步:設計界面、設置屬性、編寫代碼、調試運行、保存程序。關鍵的問題是作為一個完整的工程,如何把多個窗體“組裝”起來,并根據程序功能實現窗體間的切換。下面通過一個簡單的例子進行說明。例9.1設計一個手機話費查詢系統,包含三個窗體,即“歡迎”窗體,“手機號碼”窗體和“密碼”窗體。三個窗體功能如下:1.“歡迎”窗體為封面窗體,運行時首先顯示。單擊“單擊此處進入”按鈕時,打開“手機號碼”窗體,“歡迎”窗體消失。9.1.4多重窗體應用實例112.在“手機號碼”窗體中輸入手機號碼后,單擊“確定”按鈕,則打開“密碼”窗體,“手機號碼”窗體消失;若單擊“返回”按鈕,則返回“歡迎”窗體。3.在“密碼”窗體中輸入密碼后,單擊“確定”按鈕,只要密碼非空則顯示剩余話費;若單擊“查詢下一個”按鈕,則返回“手機號碼”窗體;若單擊“返回”按鈕,則返回“歡迎”窗體。通過該例可以發現,多重窗體應用程序中,通過相關按鈕的設置,實現窗體的顯示與隱藏,從而將多個窗體連接成一個有機的整體。2.在“手機號碼”窗體中輸入手機號碼后,單擊“確定”按鈕,則12第一個窗體第一個窗體13第二個窗體第二個窗體14第三個窗體第三個窗體15Form1代碼:PrivateSubCommand1_Click()Form2.ShowForm1.HideEndSubForm1代碼:PrivateSubCommand1_C16PrivateSubCommand1_Click()IfText1.Text<>""ThenForm3.Show:Form2.HideEndSubPrivateSubCommand2_Click()Form1.ShowForm2.HideEndSubForm2代碼:PrivateSubCommand1_Click()Fo17PrivateSubCommand1_Click()IfText1.Text<>""ThenText2.Text="話費"EndSubPrivateSubCommand2_Click()Form2.ShowForm3.HideEndSubPrivateSubCommand3_Click()Form1.ShowForm3.HideEndSubForm3代碼:PrivateSubCommand1_Click()Fo189.2VisualBasic工程結構
9.2.1標準模塊
9.2.2窗體模塊
9.2.3SubMain過程9.2.4閑置循環與DoEvents語句9.2VisualBasic工程結構9199.2.1標準模塊
在單一窗體應用程序中,所有的代碼都存放在一個窗體模塊中,而在多重窗體應用程序中,每個窗體對應一個窗體模塊,有些公共變量或通用過程需要在多個窗體中共用,這就需要創建標準模塊。標準模塊由全局變量聲明、模塊級聲明及通用過程等幾部分組成,標準模塊文件的擴展名為“.bas”。在標準模塊中,全局變量用Public聲明,模塊級變量用Dim或Private聲明。當需要聲明的全局變量或常量較多時,可以把全局變量聲明放在一個單獨的標準模塊中。一個工程文件可以包含多個標準模塊,也可以把原有的標準模塊加入工程中。當一個工程中含有多個標準模塊時,各模塊中的過程不能重名。9.2.1標準模塊20向工程中添加標準模塊有以下三種方法:⑴選擇“工程”→“添加模塊”菜單,在打開的“添加模塊”對話框中,選擇“模塊”打開,即向工程中添加一個標準模塊,標準模塊的默認名稱為Module1。⑵從工具欄上單擊“添加窗體”按鈕右側的下拉箭頭,在彈出的列表中選擇“添加模塊”選項。⑶在工程資源管理器中選定“工程”,右擊打開快捷菜單,選取“添加”項下的“添加模塊”選項,也可創建一個標準模塊。創建標準模塊后會打開一個標準模塊窗口,即可進行公共變量、常量、類型、外部過程和公共過程的聲明。向工程中添加標準模塊有以下三種方法:219.2.2窗體模塊應用程序中的每個窗體都有一個包含其代碼的窗體模塊。窗體模塊包括3部分內容,即通用聲明部分、通用過程部分和事件過程部分,窗體模塊文件的擴展名為“.frm”。如果在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設置值。在窗體模塊的通用聲明部分中,用Dim語句聲明的變量,其作用域為整個窗體模塊,即該模塊中的所有過程。通用聲明部分一般放在代碼的最前面,而通用過程和事件過程的位置沒有嚴格的限制。9.2.2窗體模塊22在窗體模塊中,可以調用標準模塊中的過程,也可以調用其它窗體模塊中的過程。注意,被調用的過程必須用Public定義為公共過程。標準模塊中的過程,可直接調用,若調用其它窗體模塊中的過程,則必須加上過程所在的窗體名。在窗體模塊中,可以調用標準模塊中的過程,也可239.2.3SubMain過程SubMain過程是在標準模塊中建立的過程,通常是作為啟動過程編寫的。若選用SubMain過程作為啟動對象,則在程序啟動時不加載任何窗體,而是運行一個SubMain過程,然后根據程序代碼來決定是否加載窗體或加載哪一個窗體。1.沒有啟動窗體時的啟動有時候也許需要應用程序啟動時不加載任何窗體。例如:可能想先運行裝入數據文件的代碼,然后根據數據文件的內容決定顯示幾個不同窗體中的哪一個。要做到這一點,可以在標準模塊中創建一個名為Main的子過程,如下面的例子所示。9.2.3SubMain過程24SubMain()DimintStatusAsInteger'調用一個函數過程來檢驗用戶狀態intStatus=GetUserStatus()'根據狀態顯示某個啟動窗體IfintStatus=1ThenfrmMain.ShowElsefrmPassword.ShowEndIfEndSubSubMain()25需要注意的是,SubMain過程必須在標準模塊中創建,不能在窗體模塊內。一個工程可以含有多個標準模塊,但SubMain過程只能有一個。SubMain過程通常是作為啟動過程編寫的,但是VisualBasic并不能夠自動識別SubMain過程,也就是說,并不自動把它作為啟動過程。若將SubMain過程設為啟動對象,需要選擇“工程”→“工程屬性”菜單,在“工程屬性”對話框中選中“通用”選項卡,在“啟動對象”下拉列表中選定“SubMain”。需要注意的是,SubMain過程必須在標準模塊中創建,不能262.顯示啟動時的快速顯示
如果啟動時有一個較長的執行過程,例如要從數據庫中裝入大量數據或者要裝入一些大型位圖,這時可能希望在啟動時給出一個快速顯示。快速顯示是一個窗體,它通常顯示的是諸如應用程序名,版權信息和一個簡單的位圖等內容。啟動VisualBasic時所顯示的屏幕就是一個快速顯示。當一些啟動例程正在執行時,快速顯示能吸引用戶的注意,造成應用程序裝載很快的錯覺。當這些啟動例程完成后,可以裝載第一個窗體并卸載快速顯示。對于快速顯示的設計,應盡量簡單為好。如果使用大量位圖或者大量控件,則快速顯示本身裝載將會變慢。2.顯示啟動時的快速顯示27若要顯示快速顯示,需要將SubMain過程作為啟動對象,并用Show方法顯示該窗體:PrivateSubMain()frmSplash.Show'顯示快速顯示'在此處添加啟動過程。......frmMain.Show'顯示主窗體UnloadfrmSplash'卸載快速顯示EndSub若要顯示快速顯示,需要將SubMain過程作為啟動對象,28例9.2設計一個“古詩選讀”程序,該程序由7個窗體組成。分別為快速顯示窗體、封面窗體、列表窗體以及4個用來顯示古詩內容的窗體。程序運行后,在裝載數據時顯示快速顯示窗體,然后顯示封面窗體并卸載快速顯示,接著顯示列表窗體,在該窗體中列出所要閱讀的古詩目錄(4個),雙擊某個目錄后,在另一個窗體的文本框中顯示相應的詩文內容。例9.2設計一個“古詩選讀”程序,該程序由7個窗體組成。299.2.4閑置循環與DoEvents語句VisualBasic屬于事件驅動型語言,即只有當發生某個事件時,才執行相應的程序,否則,應用程序會處于“閑置”狀態。另一方面,當VisualBasic執行一個過程時,將停止對其它事件(如鼠標事件)的處理,直至執行完EndSub或EndFunction指令為止。為了改變這種執行順序,VB提供了閑置循環(IdleLoop)和DoEvents語句。閑置循環就是當應用程序處于閑置狀態時,用一個循環來執行其它操作。簡言之,閑置循環就是應用程序在閑置狀態下執行的循環。但執行閑置循環又會占用全部CPU時間,不允許執行其它事件過程。為此,VisualBasic提供了一個DoEvents語句,無論何時,一執行到DoEvents語句,就會把系統的控制權交給周圍環境使用,然后再回到原來程序繼續執行。9.2.4閑置循環與DoEvents語句30DoEvents既可以作為語句使用,也可以作為函數使用。作為函數使用時,返回值為當前裝入VisualBasic應用程序工作區的窗體號,如果不想使用這個返回值,則可以隨便用一個變量接收返回值。DoEvents語句格式為:DoEventsDoEvents函數格式為:窗體號|變量名=DoEvents()DoEvents既可以作為語句使用,也可以作為函數使用。作為31例9.3編寫程序,試驗閑置循環和DoEvents語句。窗體上有一個標簽和兩個命令按鈕,當系統處于閑置狀態時,標簽顯示“系統處于閑置狀態”,同時不斷右移;當按下“運行”按鈕后,標簽顯示“正在運行程序”。程序運行后,首先執行SubMain過程,顯示出窗體后,執行閑置循環,使標簽不斷右移。當按下“運行”按鈕后,發生了Command1的Click事件,執行到DoEvents語句時,程序會響應這個事件,暫停閑置循環,執行Command1_Click()事件過程,執行完該過程,程序又回到閑置循環繼續執行,使標簽繼續右移。標簽暫停移動的時間由Command1_Click()事件過程中的延時循環決定。當按下“退出”按鈕時,則退出程序。例9.3編寫程序,試驗閑置循環和DoEvents語句。32演講完畢,謝謝觀看!演講完畢,謝謝觀看!33第9章多重窗體與環境應用9.1多重窗體9.2VisualBasic工程結構
第9章多重窗體與環境應用9.1多重窗體9.2Vi349.1多重窗體
9.1.1多重窗體管理
9.1.2設置啟動窗體
9.1.3窗體處理
9.1.4多重窗體應用實例
9.1多重窗體9.1.1多重窗體管理359.1.1多重窗體管理1.向工程中添加窗體向工程中添加新窗體有以下三種方法:⑴選擇“工程”→“添加窗體”菜單,在打開的“添加窗體”對話框中,選擇“窗體”打開,即向工程中添加一個新窗體。新窗體的默認名稱和標題(Caption屬性)均由集成開發環境自動排列確定,如第二個創建的窗體,其默認的名稱為Form2,標題為Form2。⑵從工具欄上選擇“添加窗體”按鈕,向工程中添加一個新窗體。⑶在工程資源管理器中選定“工程”,單擊右鍵打開快捷菜單,選則“添加”→“添加窗體”選項,也可創建一個新窗體。9.1.1多重窗體管理362.移除工程中的窗體移除工程中多余的窗體有以下兩種方法:⑴在工程資源管理器窗口中選定要刪除的窗體,選擇“工程”→“移除窗體”菜單項。⑵在工程資源管理器中選中要刪除的窗體,單擊右鍵彈出其快捷菜單,選取“移除窗體”選項。3.保存窗體在多重窗體應用程序中,每個窗體都要單獨保存,方法同單一窗體應用程序一樣。在工程資源管理器窗口中選定要保存的窗體,選擇“文件”→“保存窗體”菜單或“窗體另存為”菜單,或者在工程資源管理器中打開快捷菜單,選取“保存窗體”或“窗體另存為”選項。每個窗體保存后都生成一個擴展名為“.frm”的文件。2.移除工程中的窗體379.1.2設置啟動窗體在多重窗體應用程序中,由于應用程序由多個窗體組成,就是由多個界面組成,因此在程序開始運行時,必須有一個窗體是首先出現的,即啟動窗體。VB集成開發環境在創建新工程時,把窗體Form1作為系統缺省的啟動窗體。如果用戶在實際應用或在調試程序中希望把某個窗體作為啟動窗體,在程序運行時首先出現在屏幕上,可用以下方法實現:選擇“工程”→“工程屬性”菜單,在“工程屬性”對話框中選中“通用”選項卡。在“啟動對象”下拉列表中顯示了該工程所有的窗體和“SubMain”過程,用戶可以根據需要進行選擇。若選用SubMain過程作為啟動對象,則在程序啟動時不加載任何窗體,而是運行一個SubMain過程,然后根據程序代碼來決定是否加載窗體或加載哪一個窗體。9.1.2設置啟動窗體389.1.3窗體處理在使用相關語句和方法前,大家有必要先了解窗體在應用程序中的三種存在形式:沒有被加載:這時,窗體雖然是應用程序的構件,但并沒有正式成為項目的組成部分,即窗體不會占用系統資源。加載但沒有顯示:這時,窗體已經被加載,成為項目的組成部分,但并沒有顯示出來。加載并顯示:這時,窗體已經被正式顯示出來,當然窗體一定要被加載后才能顯示出來。9.1.3窗體處理39如果應用程序中只有一個窗體,在程序運行時這個窗體會被自動加載并顯示出來。如果應用程序由多個窗體組成,則會有一個窗體被設置為啟動窗體。在程序運行時啟動窗體同樣被自動加載并顯示,而其他的窗體則必須在已經啟動的窗體中進行加載或顯示,這就要用到下面幾個相關語句和方法。1.Load語句格式:Load<窗體名稱>該語句用于將一個窗體裝入內存。執行Load語句后,窗體處于“加載但沒有顯示”狀態,此時可以引用窗體中的控件及各種屬性,但窗體沒有顯示出來。如果應用程序中只有一個窗體,在程序運行時這個402.Unload語句格式:Unload<窗體名稱>該語句用于卸載內存中指定的窗體,與Load語句的功能相反。執行Unload語句后,窗體處于“沒有被加載”狀態,不會占用系統資源。注:應用程序結束后,應卸載所有的窗體,否則會出現這種現象,即應用程序雖已表現為結束狀態,但實際上某個窗體仍處于隱藏狀態,并占用一定系統資源。Windows系統本身不會自動處理此類問題,這對于程序的運行是極為不利的。為了避免這種情況,應在結束程序前使用Unload語句將窗體從內存中刪除。2.Unload語句413.Show方法格式:[窗體名稱].Show[模式]該方法用于顯示一個窗體。執行Show方法后,窗體處于“加載并顯示”狀態。窗體名稱:可選項,缺省時為當前窗體。模式值:可選項,取值0(默認值)或1,用以決定窗體是非模態還是模態。模式值為0時,窗體為非模態,此時用戶可對其他窗體進行操作;模式值為1時,窗體為模態,此時用戶不能對其他窗體進行操作,直到該窗體關閉為止。注:該方法兼有裝入和顯示窗體兩種功能。也就是說,在執行Show方法時,如果窗體沒有裝入內存,則執行時Show方法會自動把窗體裝入內存,然后顯示出來。3.Show方法424.Hide方法格式:[窗體名稱].Hide該方法用于將窗體隱藏起來。執行Hide方法后,窗體處于“加載但沒有顯示”狀態,即窗體仍在內存中,但窗體沒有顯示出來,與窗體卸載有本質的區別。4.Hide方法439.1.4多重窗體應用實例和單一窗體的程序設計一樣,多重窗體程序設計也基本上分為5步:設計界面、設置屬性、編寫代碼、調試運行、保存程序。關鍵的問題是作為一個完整的工程,如何把多個窗體“組裝”起來,并根據程序功能實現窗體間的切換。下面通過一個簡單的例子進行說明。例9.1設計一個手機話費查詢系統,包含三個窗體,即“歡迎”窗體,“手機號碼”窗體和“密碼”窗體。三個窗體功能如下:1.“歡迎”窗體為封面窗體,運行時首先顯示。單擊“單擊此處進入”按鈕時,打開“手機號碼”窗體,“歡迎”窗體消失。9.1.4多重窗體應用實例442.在“手機號碼”窗體中輸入手機號碼后,單擊“確定”按鈕,則打開“密碼”窗體,“手機號碼”窗體消失;若單擊“返回”按鈕,則返回“歡迎”窗體。3.在“密碼”窗體中輸入密碼后,單擊“確定”按鈕,只要密碼非空則顯示剩余話費;若單擊“查詢下一個”按鈕,則返回“手機號碼”窗體;若單擊“返回”按鈕,則返回“歡迎”窗體。通過該例可以發現,多重窗體應用程序中,通過相關按鈕的設置,實現窗體的顯示與隱藏,從而將多個窗體連接成一個有機的整體。2.在“手機號碼”窗體中輸入手機號碼后,單擊“確定”按鈕,則45第一個窗體第一個窗體46第二個窗體第二個窗體47第三個窗體第三個窗體48Form1代碼:PrivateSubCommand1_Click()Form2.ShowForm1.HideEndSubForm1代碼:PrivateSubCommand1_C49PrivateSubCommand1_Click()IfText1.Text<>""ThenForm3.Show:Form2.HideEndSubPrivateSubCommand2_Click()Form1.ShowForm2.HideEndSubForm2代碼:PrivateSubCommand1_Click()Fo50PrivateSubCommand1_Click()IfText1.Text<>""ThenText2.Text="話費"EndSubPrivateSubCommand2_Click()Form2.ShowForm3.HideEndSubPrivateSubCommand3_Click()Form1.ShowForm3.HideEndSubForm3代碼:PrivateSubCommand1_Click()Fo519.2VisualBasic工程結構
9.2.1標準模塊
9.2.2窗體模塊
9.2.3SubMain過程9.2.4閑置循環與DoEvents語句9.2VisualBasic工程結構9529.2.1標準模塊
在單一窗體應用程序中,所有的代碼都存放在一個窗體模塊中,而在多重窗體應用程序中,每個窗體對應一個窗體模塊,有些公共變量或通用過程需要在多個窗體中共用,這就需要創建標準模塊。標準模塊由全局變量聲明、模塊級聲明及通用過程等幾部分組成,標準模塊文件的擴展名為“.bas”。在標準模塊中,全局變量用Public聲明,模塊級變量用Dim或Private聲明。當需要聲明的全局變量或常量較多時,可以把全局變量聲明放在一個單獨的標準模塊中。一個工程文件可以包含多個標準模塊,也可以把原有的標準模塊加入工程中。當一個工程中含有多個標準模塊時,各模塊中的過程不能重名。9.2.1標準模塊53向工程中添加標準模塊有以下三種方法:⑴選擇“工程”→“添加模塊”菜單,在打開的“添加模塊”對話框中,選擇“模塊”打開,即向工程中添加一個標準模塊,標準模塊的默認名稱為Module1。⑵從工具欄上單擊“添加窗體”按鈕右側的下拉箭頭,在彈出的列表中選擇“添加模塊”選項。⑶在工程資源管理器中選定“工程”,右擊打開快捷菜單,選取“添加”項下的“添加模塊”選項,也可創建一個標準模塊。創建標準模塊后會打開一個標準模塊窗口,即可進行公共變量、常量、類型、外部過程和公共過程的聲明。向工程中添加標準模塊有以下三種方法:549.2.2窗體模塊應用程序中的每個窗體都有一個包含其代碼的窗體模塊。窗體模塊包括3部分內容,即通用聲明部分、通用過程部分和事件過程部分,窗體模塊文件的擴展名為“.frm”。如果在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設置值。在窗體模塊的通用聲明部分中,用Dim語句聲明的變量,其作用域為整個窗體模塊,即該模塊中的所有過程。通用聲明部分一般放在代碼的最前面,而通用過程和事件過程的位置沒有嚴格的限制。9.2.2窗體模塊55在窗體模塊中,可以調用標準模塊中的過程,也可以調用其它窗體模塊中的過程。注意,被調用的過程必須用Public定義為公共過程。標準模塊中的過程,可直接調用,若調用其它窗體模塊中的過程,則必須加上過程所在的窗體名。在窗體模塊中,可以調用標準模塊中的過程,也可569.2.3SubMain過程SubMain過程是在標準模塊中建立的過程,通常是作為啟動過程編寫的。若選用SubMain過程作為啟動對象,則在程序啟動時不加載任何窗體,而是運行一個SubMain過程,然后根據程序代碼來決定是否加載窗體或加載哪一個窗體。1.沒有啟動窗體時的啟動有時候也許需要應用程序啟動時不加載任何窗體。例如:可能想先運行裝入數據文件的代碼,然后根據數據文件的內容決定顯示幾個不同窗體中的哪一個。要做到這一點,可以在標準模塊中創建一個名為Main的子過程,如下面的例子所示。9.2.3SubMain過程57SubMain()DimintStatusAsInteger'調用一個函數過程來檢驗用戶狀態intStatus=GetUserStatus()'根據狀態顯示某個啟動窗體IfintStatus=1ThenfrmMain.ShowElsefrmPassword.ShowEndIfEndSubSubMain()58需要注意的是,SubMain過程必須在標準模塊中創建,不能在窗體模塊內。一個工程可以含有多個標準模塊,但SubMain過程只能有一個。SubMain過程通常是作為啟動過程編寫的,但是VisualBasic并不能夠自動識別SubMain過程,也就是說,并不自動把它作為啟動過程。若將SubMain過程設為啟動對象,需要選擇“工程”→“工程屬性”菜單,在“工程屬性”對話框中選中“通用”選項卡,在“啟動對象”下拉列表中選定“SubMain”。需要注意的是,SubMain過程必須在標準模塊中創建,不能592.顯示啟動時的快速顯示
如果啟動時有一個較長的執行過程,例如要從數據庫中裝入大量數據或者要裝入一些大型位圖,這時可能希望在啟動時給出一個快速顯示。快速顯示是一個窗體,它通常顯示的是諸如應用程序名,版權信息和一個簡單的位圖等內容。啟動VisualBasic時所顯示的屏幕就是一個快速顯示。當一些啟動例程正在執行時,快速顯示能吸引用戶的注意,造成應用程序裝載很快的錯覺。當這些啟動例程完成后,可以裝載第一個窗體并卸載快速顯示。對于快速顯示的設計,應盡量簡單為好。如果使用大量位圖或者大量控件,則快速顯示本身裝載將會變慢。2.顯示啟動時的快速顯示60若要顯示快速顯示,需要將SubMain過程作為啟動對象,并用Show方法顯示該窗體:PrivateSubMain()frmS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生安全自律協議3篇
- 擦洗劑的成分與清潔效果對比研究考核試卷
- 審計證據收集與評估考核試卷
- 火工品生產過程中的安全生產標準化實施考核試卷
- 纖維素纖維的生態友好型加工技術與設備考核試卷
- 環境污染治理區域合作考核試卷
- 2025標準租房合同范本下載
- 2025巨型建設項目合同范本
- 2025辦公租賃合同(財產租賃合同)
- 房屋委托居間服務合同書范例
- 【MOOC】College Students'Innovation and Entrepreneurship Practice-Southwest Jiaotong University 中國大學慕課MOOC答案
- 合同工期延期補充協議書
- 律師執業道德和執業紀律
- 20160606科技成果鑒定材料撰寫及獎勵申報
- 2024年天津市高考化學試卷(含答案逐題解析)
- 《設計構成》試卷及答案A
- 2024年高考真題-政治(江蘇卷) 含答案
- 大型活動策劃與管理第十一章 大型活動后勤保障
- 測土配方施肥技術
- 【沙利文公司】2024年中國銀發經濟發展報告
- 海綿城市工程施工方案
評論
0/150
提交評論