




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第9章 多重窗體與環(huán)境運(yùn)用9.1 多重窗體9.2 Visual Basic工程構(gòu)造 9.1 多重窗體 9.1.1 多重窗體管理 9.1.2 設(shè)置啟動窗體 9.1.3 窗體處置 9.1.4 多重窗體運(yùn)用實例 9.1.1 多重窗體管理1. 向工程中添加窗體向工程中添加新窗體有以下三種方法:選擇“工程“添加窗體菜單,在翻開的“添加窗體對話框中,選擇“窗體翻開,即向工程中添加一個新窗體。新窗體的默許稱號和標(biāo)題(Caption屬性)均由集成開發(fā)環(huán)境自動陳列確定,如第二個創(chuàng)建的窗體,其默許的稱號為Form2,標(biāo)題為Form2。從工具欄上選擇“添加窗體按鈕,向工程中添加一個新窗體。在工程資源管理器中選定“工
2、程,單擊右鍵翻開快捷菜單,選那么“添加 “添加窗體選項,也可創(chuàng)建一個新窗體。2. 移除工程中的窗體移除工程中多余的窗體有以下兩種方法: 在工程資源管理器窗口中選定要刪除的窗體,選擇“工程“移除窗體菜單項。 在工程資源管理器中選中要刪除的窗體,單擊右鍵彈出其快捷菜單,選取“移除窗體選項。3. 保管窗體 在多重窗體運(yùn)用程序中,每個窗體都要單獨(dú)保管,方法同單一窗體運(yùn)用程序一樣。在工程資源管理器窗口中選定要保管的窗體,選擇“文件“保管窗體菜單或“窗體另存為菜單,或者在工程資源管理器中翻開快捷菜單,選取“保管窗體或“窗體另存為選項。每個窗體保管后都生成一個擴(kuò)展名為“.frm的文件。9.1.2 設(shè)置啟動窗
3、體 在多重窗體運(yùn)用程序中,由于運(yùn)用程序由多個窗體組成,就是由多個界面組成,因此在程序開場運(yùn)轉(zhuǎn)時,必需有一個窗體是首先出現(xiàn)的,即啟動窗體。VB集成開發(fā)環(huán)境在創(chuàng)建新工程時,把窗體Form1作為系統(tǒng)缺省的啟動窗體。假設(shè)用戶在實踐運(yùn)用或在調(diào)試程序中希望把某個窗體作為啟動窗體,在程序運(yùn)轉(zhuǎn)時首先出如今屏幕上,可用以下方法實現(xiàn): 選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項卡。在“啟動對象下拉列表中顯示了該工程一切的窗體和“Sub Main過程,用戶可以根據(jù)需求進(jìn)展選擇。假設(shè)選用Sub Main過程作為啟動對象,那么在程序啟動時不加載任何窗體,而是運(yùn)轉(zhuǎn)一個Sub Main過程,然后根據(jù)程序代
4、碼來決議能否加載窗體或加載哪一個窗體。9.1.3 窗體處置 在運(yùn)用相關(guān)語句和方法前,大家有必要先了解窗體在運(yùn)用程序中的三種存在方式:沒有被加載:這時,窗體雖然是運(yùn)用程序的構(gòu)件,但并沒有正式成為工程的組成部分,即窗體不會占用系統(tǒng)資源。加載但沒有顯示:這時,窗體曾經(jīng)被加載,成為工程的組成部分,但并沒有顯示出來。加載并顯示:這時,窗體曾經(jīng)被正式顯示出來,當(dāng)然窗體一定要被加載后才干顯示出來。 假設(shè)運(yùn)用程序中只需一個窗體,在程序運(yùn)轉(zhuǎn)時這個窗領(lǐng)會被自動加載并顯示出來。假設(shè)運(yùn)用程序由多個窗體組成,那么會有一個窗體被設(shè)置為啟動窗體。在程序運(yùn)轉(zhuǎn)時啟動窗體同樣被自動加載并顯示,而其他的窗體那么必需在曾經(jīng)啟動的窗體
5、中進(jìn)展加載或顯示,這就要用到下面幾個相關(guān)語句和方法。1. Load語句格式:Load 該語句用于將一個窗體裝入內(nèi)存。執(zhí)行Load語句后,窗體處于“加載但沒有顯示形狀,此時可以援用窗體中的控件及各種屬性,但窗體沒有顯示出來。2. Unload語句格式:Unload 該語句用于卸載內(nèi)存中指定的窗體,與Load語句的功能相反。執(zhí)行Unload語句后,窗體處于“沒有被加載形狀,不會占用系統(tǒng)資源。注:運(yùn)用程序終了后,應(yīng)卸載一切的窗體,否那么會出現(xiàn)這種景象,即運(yùn)用程序雖已表現(xiàn)為終了形狀,但實踐上某個窗體仍處于隱藏形狀,并占用一定系統(tǒng)資源。Windows系統(tǒng)本身不會自動處置此類問題,這對于程序的運(yùn)轉(zhuǎn)是極為不
6、利的。為了防止這種情況,應(yīng)在終了程序前運(yùn)用Unload語句將窗體從內(nèi)存中刪除。 3. Show方法格式:窗體稱號.Show 方式該方法用于顯示一個窗體。執(zhí)行Show方法后,窗體處于“加載并顯示形狀。窗體稱號:可選項,缺省時為當(dāng)前窗體。方式值:可選項,取值0默許值或1,用以決議窗體是非模態(tài)還是模態(tài)。方式值為0時,窗體為非模態(tài),此時用戶可對其他窗體進(jìn)展操作;方式值為1時,窗體為模態(tài),此時用戶不能對其他窗體進(jìn)展操作,直到該窗體封鎖為止。注:該方法兼有裝入和顯示窗體兩種功能。也就是說,在執(zhí)行Show方法時,假設(shè)窗體沒有裝入內(nèi)存,那么執(zhí)行時Show方法會自動把窗體裝入內(nèi)存,然后顯示出來。4. Hide方
7、法格式:窗體稱號.Hide該方法用于將窗體隱藏起來。執(zhí)行Hide方法后,窗體處于“加載但沒有顯示形狀,即窗體仍在內(nèi)存中,但窗體沒有顯示出來,與窗體卸載有本質(zhì)的區(qū)別。9.1.4 多重窗體運(yùn)用實例 和單一窗體的程序設(shè)計一樣,多重窗體程序設(shè)計也根本上分為5步:設(shè)計界面、設(shè)置屬性、編寫代碼、調(diào)試運(yùn)轉(zhuǎn)、保管程序。關(guān)鍵的問題是作為一個完好的工程,如何把多個窗體“組裝起來,并根據(jù)程序功能實現(xiàn)窗體間的切換。下面經(jīng)過一個簡單的例子進(jìn)展闡明。例9.1 設(shè)計一個手機(jī)話費(fèi)查詢系統(tǒng),包含三個窗體,即“歡迎窗體,“手機(jī)號碼窗體和“密碼窗體。三個窗體功能如下:1.“歡迎窗體為封面窗體,運(yùn)轉(zhuǎn)時首先顯示。單擊“單擊此處進(jìn)入按鈕
8、時,翻開“手機(jī)號碼窗體,“歡迎窗體消逝。2.在“手機(jī)號碼窗體中輸入手機(jī)號碼后,單擊“確定按鈕,那么翻開“密碼窗體,“手機(jī)號碼窗體消逝;假設(shè)單擊“前往按鈕,那么前往“歡迎窗體。3.在“密碼窗體中輸入密碼后,單擊“確定按鈕,只需密碼非空那么顯示剩余話費(fèi);假設(shè)單擊“查詢下一個按鈕,那么前往“手機(jī)號碼窗體;假設(shè)單擊“前往按鈕,那么前往“歡迎窗體。 經(jīng)過該例可以發(fā)現(xiàn),多重窗體運(yùn)用程序中,經(jīng)過相關(guān)按鈕的設(shè)置,實現(xiàn)窗體的顯示與隱藏,從而將多個窗體銜接成一個有機(jī)的整體。第一個窗體第二個窗體第三個窗體Form1代碼:Private Sub Command1_Click() Form2.Show Form1.Hi
9、deEnd SubPrivate Sub Command1_Click() If Text1.Text Then Form3.Show: Form2.HideEnd SubPrivate Sub Command2_Click() Form1.Show Form2.HideEnd SubForm2代碼:Private Sub Command1_Click() If Text1.Text Then Text2.Text = 話費(fèi)End SubPrivate Sub Command2_Click() Form2.Show Form3.HideEnd SubPrivate Sub Command3_C
10、lick() Form1.Show Form3.HideEnd SubForm3代碼:9.2 Visual Basic工程構(gòu)造 9.2.1 規(guī)范模塊 9.2.2 窗體模塊 9.2.3 Sub Main 過程9.2.4 閑置循環(huán)與DoEvents語句9.2.1 規(guī)范模塊 在單一窗體運(yùn)用程序中,一切的代碼都存放在一個窗體模塊中,而在多重窗體運(yùn)用程序中,每個窗體對應(yīng)一個窗體模塊,有些公共變量或通用過程需求在多個窗體中共用,這就需求創(chuàng)建規(guī)范模塊。規(guī)范模塊由全局變量聲明、模塊級聲明及通用過程等幾部分組成,規(guī)范模塊文件的擴(kuò)展名為“.bas。 在規(guī)范模塊中,全局變量用Public聲明,模塊級變量用Dim或P
11、rivate聲明。當(dāng)需求聲明的全局變量或常量較多時,可以把全局變量聲明放在一個單獨(dú)的規(guī)范模塊中。一個工程文件可以包含多個規(guī)范模塊,也可以把原有的規(guī)范模塊參與工程中。當(dāng)一個工程中含有多個規(guī)范模塊時,各模塊中的過程不能重名。向工程中添加規(guī)范模塊有以下三種方法:選擇“工程“添加模塊菜單,在翻開的“添加模塊對話框中,選擇“模塊翻開,即向工程中添加一個規(guī)范模塊,規(guī)范模塊的默許稱號為Module1。從工具欄上單擊“添加窗體按鈕右側(cè)的下拉箭頭,在彈出的列表中選擇“添加模塊選項。在工程資源管理器中選定“工程,右擊翻開快捷菜單,選取“添加項下的“添加模塊選項,也可創(chuàng)建一個規(guī)范模塊。創(chuàng)建規(guī)范模塊后會翻開一個規(guī)范模
12、塊窗口,即可進(jìn)展公共變量、常量、類型、外部過程和公共過程的聲明。9.2.2 窗體模塊 運(yùn)用程序中的每個窗體都有一個包含其代碼的窗體模塊。窗體模塊包括3部分內(nèi)容,即通用聲明部分、通用過程部分和事件過程部分,窗體模塊文件的擴(kuò)展名為“.frm。假設(shè)在文本編輯器中察看窗體模塊,那么還會看到窗體及其控件的描畫,包括它們的屬性設(shè)置值。 在窗體模塊的通用聲明部分中,用Dim語句聲明的變量,其作用域為整個窗體模塊,即該模塊中的一切過程。通用聲明部分普通放在代碼的最前面,而通用過程和事件過程的位置沒有嚴(yán)厲的限制。 在窗體模塊中,可以調(diào)用規(guī)范模塊中的過程,也可以調(diào)用其它窗體模塊中的過程。留意,被調(diào)用的過程必需用P
13、ublic定義為公共過程。規(guī)范模塊中的過程,可直接調(diào)用,假設(shè)調(diào)用其它窗體模塊中的過程,那么必需加上過程所在的窗體名。9.2.3 Sub Main過程 Sub Main過程是在規(guī)范模塊中建立的過程,通常是作為啟動過程編寫的。假設(shè)選用Sub Main過程作為啟動對象,那么在程序啟動時不加載任何窗體,而是運(yùn)轉(zhuǎn)一個Sub Main過程,然后根據(jù)程序代碼來決議能否加載窗體或加載哪一個窗體。1.沒有啟動窗體時的啟動 有時候也許需求運(yùn)用程序啟動時不加載任何窗體。例如:能夠想先運(yùn)轉(zhuǎn)裝入數(shù)據(jù)文件的代碼,然后根據(jù)數(shù)據(jù)文件的內(nèi)容決議顯示幾個不同窗體中的哪一個。要做到這一點,可以在規(guī)范模塊中創(chuàng)建一個名為 Main 的
14、子過程,如下面的例子所示。 Sub Main() Dim intStatus As Integer 調(diào)用一個函數(shù)過程來檢驗用戶形狀 intStatus = GetUserStatus() 根據(jù)形狀顯示某個啟動窗體 If intStatus = 1 Then frmMain.Show Else frmPassword.Show End IfEnd Sub需求留意的是,Sub Main過程必需在規(guī)范模塊中創(chuàng)建,不能在窗體模塊內(nèi)。一個工程可以含有多個規(guī)范模塊,但Sub Main過程只能有一個。Sub Main過程通常是作為啟動過程編寫的,但是Visual Basic并不可以自動識別Sub Main過
15、程,也就是說,并不自動把它作為啟動過程。假設(shè)將 Sub Main 過程設(shè)為啟動對象,需求選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項卡,在“啟動對象下拉列表中選定“Sub Main。2.顯示啟動時的快速顯示 假設(shè)啟動時有一個較長的執(zhí)行過程,例如要從數(shù)據(jù)庫中裝入大量數(shù)據(jù)或者要裝入一些大型位圖,這時能夠希望在啟動時給出一個快速顯示??焖亠@示是一個窗體,它通常顯示的是諸如運(yùn)用程序名,版權(quán)信息和一個簡單的位圖等內(nèi)容。啟動 Visual Basic 時所顯示的屏幕就是一個快速顯示。 當(dāng)一些啟動例程正在執(zhí)行時,快速顯示能吸援用戶的留意,呵斥運(yùn)用程序裝載很快的錯覺。當(dāng)這些啟動例程完成后,可以
16、裝載第一個窗體并卸載快速顯示。對于快速顯示的設(shè)計,應(yīng)盡量簡單為好。假設(shè)運(yùn)用大量位圖或者大量控件,那么快速顯示本身裝載將會變慢。 假設(shè)要顯示快速顯示,需求將Sub Main 過程作為啟動對象,并用 Show 方法顯示該窗體:Private Sub Main() frmSplash.Show 顯示快速顯示 在此處添加啟動過程。 . . frmMain.Show 顯示主窗體 Unload frmSplash 卸載快速顯示End Sub例9.2 設(shè)計一個“古詩選讀程序,該程序由7個窗體組成。分別為快速顯示窗體、封面窗體、列表窗體以及4個用來顯示古詩內(nèi)容的窗體。程序運(yùn)轉(zhuǎn)后,在裝載數(shù)據(jù)時顯示快速顯示窗體,
17、然后顯示封面窗體并卸載快速顯示,接著顯示列表窗體,在該窗體中列出所要閱讀的古詩目錄4個,雙擊某個目錄后,在另一個窗體的文本框中顯示相應(yīng)的詩文內(nèi)容。9.2.4 閑置循環(huán)與DoEvents語句 Visual Basic屬于事件驅(qū)動型言語,即只需當(dāng)發(fā)生某個事件時,才執(zhí)行相應(yīng)的程序,否那么,運(yùn)用程序會處于“閑置形狀。另一方面,當(dāng)Visual Basic執(zhí)行一個過程時,將停頓對其它事件如鼠標(biāo)事件的處置,直至執(zhí)行完End Sub或End Function指令為止。為了改動這種執(zhí)行順序,VB提供了閑置循環(huán)Idle Loop和DoEvents語句。 閑置循環(huán)就是當(dāng)運(yùn)用程序處于閑置形狀時,用一個循環(huán)來執(zhí)行其它操
18、作。簡言之,閑置循環(huán)就是運(yùn)用程序在閑置形狀下執(zhí)行的循環(huán)。但執(zhí)行閑置循環(huán)又會占用全部CPU時間,不允許執(zhí)行其它事件過程。為此,Visual Basic提供了一個DoEvents語句,無論何時,一執(zhí)行到DoEvents語句,就會把系統(tǒng)的控制權(quán)交給周圍環(huán)境運(yùn)用,然后再回到原來程序繼續(xù)執(zhí)行。 DoEvents既可以作為語句運(yùn)用,也可以作為函數(shù)運(yùn)用。作為函數(shù)運(yùn)用時,前往值為當(dāng)前裝入Visual Basic運(yùn)用程序任務(wù)區(qū)的窗體號,假設(shè)不想運(yùn)用這個前往值,那么可以隨意用一個變量接納前往值。 DoEvents語句格式為: DoEventsDoEvents函數(shù)格式為: 窗體號 | 變量名=DoEvents() 例9.3 編寫程序,實驗閑置循環(huán)和DoEvents語句。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025戰(zhàn)略管理與合同關(guān)系優(yōu)化
- 2025商務(wù)英語考試:商務(wù)合同英譯關(guān)鍵注意問題
- 2025租賃合同與銷售合同
- 2025標(biāo)準(zhǔn)煤炭購銷合同
- 2025《商務(wù)樓租賃合同》范本
- 2025合同解除與合同終止的區(qū)別
- 2025餐飲連鎖店的用工合同范本
- 2025銅產(chǎn)品購銷合同范本
- 2025年:透視租賃合同中的當(dāng)事人權(quán)益保障
- 2025有關(guān)企業(yè)對個人借款合同范文
- 自身免疫性腦炎
- 醫(yī)院質(zhì)控科工作質(zhì)量考核指標(biāo)
- CRPS電源設(shè)計向?qū)?CRPS Design Guide r-2017
- GB/T 9345.1-2008塑料灰分的測定第1部分:通用方法
- GB/T 4937.22-2018半導(dǎo)體器件機(jī)械和氣候試驗方法第22部分:鍵合強(qiáng)度
- GB/T 3452.2-2007液壓氣動用O形橡膠密封圈第2部分:外觀質(zhì)量檢驗規(guī)范
- 煤礦從業(yè)人員安全培訓(xùn)考試題庫(附答案)
- 第十章-國際政治與世界格局-(《政治學(xué)概論》課件)
- 2023年法律職業(yè)資格考試歷年真題精選合集
- 濾毒罐使用說明書
- 如何上好一節(jié)思政課綜述課件
評論
0/150
提交評論