版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(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è)置啟動(dòng)窗體 9.1.3 窗體處置 9.1.4 多重窗體運(yùn)用實(shí)例 9.1.1 多重窗體管理1. 向工程中添加窗體向工程中添加新窗體有以下三種方法:選擇“工程“添加窗體菜單,在翻開的“添加窗體對話框中,選擇“窗體翻開,即向工程中添加一個(gè)新窗體。新窗體的默許稱號(hào)和標(biāo)題(Caption屬性)均由集成開發(fā)環(huán)境自動(dòng)陳列確定,如第二個(gè)創(chuàng)建的窗體,其默許的稱號(hào)為Form2,標(biāo)題為Form2。從工具欄上選擇“添加窗體按鈕,向工程中添加一個(gè)新窗體。在工程資源管理器中選定“工
2、程,單擊右鍵翻開快捷菜單,選那么“添加 “添加窗體選項(xiàng),也可創(chuàng)建一個(gè)新窗體。2. 移除工程中的窗體移除工程中多余的窗體有以下兩種方法: 在工程資源管理器窗口中選定要?jiǎng)h除的窗體,選擇“工程“移除窗體菜單項(xiàng)。 在工程資源管理器中選中要?jiǎng)h除的窗體,單擊右鍵彈出其快捷菜單,選取“移除窗體選項(xiàng)。3. 保管窗體 在多重窗體運(yùn)用程序中,每個(gè)窗體都要單獨(dú)保管,方法同單一窗體運(yùn)用程序一樣。在工程資源管理器窗口中選定要保管的窗體,選擇“文件“保管窗體菜單或“窗體另存為菜單,或者在工程資源管理器中翻開快捷菜單,選取“保管窗體或“窗體另存為選項(xiàng)。每個(gè)窗體保管后都生成一個(gè)擴(kuò)展名為“.frm的文件。9.1.2 設(shè)置啟動(dòng)窗
3、體 在多重窗體運(yùn)用程序中,由于運(yùn)用程序由多個(gè)窗體組成,就是由多個(gè)界面組成,因此在程序開場運(yùn)轉(zhuǎn)時(shí),必需有一個(gè)窗體是首先出現(xiàn)的,即啟動(dòng)窗體。VB集成開發(fā)環(huán)境在創(chuàng)建新工程時(shí),把窗體Form1作為系統(tǒng)缺省的啟動(dòng)窗體。假設(shè)用戶在實(shí)踐運(yùn)用或在調(diào)試程序中希望把某個(gè)窗體作為啟動(dòng)窗體,在程序運(yùn)轉(zhuǎn)時(shí)首先出如今屏幕上,可用以下方法實(shí)現(xiàn): 選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項(xiàng)卡。在“啟動(dòng)對象下拉列表中顯示了該工程一切的窗體和“Sub Main過程,用戶可以根據(jù)需求進(jìn)展選擇。假設(shè)選用Sub Main過程作為啟動(dòng)對象,那么在程序啟動(dòng)時(shí)不加載任何窗體,而是運(yùn)轉(zhuǎn)一個(gè)Sub Main過程,然后根據(jù)程序代
4、碼來決議能否加載窗體或加載哪一個(gè)窗體。9.1.3 窗體處置 在運(yùn)用相關(guān)語句和方法前,大家有必要先了解窗體在運(yùn)用程序中的三種存在方式:沒有被加載:這時(shí),窗體雖然是運(yùn)用程序的構(gòu)件,但并沒有正式成為工程的組成部分,即窗體不會(huì)占用系統(tǒng)資源。加載但沒有顯示:這時(shí),窗體曾經(jīng)被加載,成為工程的組成部分,但并沒有顯示出來。加載并顯示:這時(shí),窗體曾經(jīng)被正式顯示出來,當(dāng)然窗體一定要被加載后才干顯示出來。 假設(shè)運(yùn)用程序中只需一個(gè)窗體,在程序運(yùn)轉(zhuǎn)時(shí)這個(gè)窗領(lǐng)會(huì)被自動(dòng)加載并顯示出來。假設(shè)運(yùn)用程序由多個(gè)窗體組成,那么會(huì)有一個(gè)窗體被設(shè)置為啟動(dòng)窗體。在程序運(yùn)轉(zhuǎn)時(shí)啟動(dòng)窗體同樣被自動(dòng)加載并顯示,而其他的窗體那么必需在曾經(jīng)啟動(dòng)的窗體
5、中進(jìn)展加載或顯示,這就要用到下面幾個(gè)相關(guān)語句和方法。1. Load語句格式:Load 該語句用于將一個(gè)窗體裝入內(nèi)存。執(zhí)行Load語句后,窗體處于“加載但沒有顯示形狀,此時(shí)可以援用窗體中的控件及各種屬性,但窗體沒有顯示出來。2. Unload語句格式:Unload 該語句用于卸載內(nèi)存中指定的窗體,與Load語句的功能相反。執(zhí)行Unload語句后,窗體處于“沒有被加載形狀,不會(huì)占用系統(tǒng)資源。注:運(yùn)用程序終了后,應(yīng)卸載一切的窗體,否那么會(huì)出現(xiàn)這種景象,即運(yùn)用程序雖已表現(xiàn)為終了形狀,但實(shí)踐上某個(gè)窗體仍處于隱藏形狀,并占用一定系統(tǒng)資源。Windows系統(tǒng)本身不會(huì)自動(dòng)處置此類問題,這對于程序的運(yùn)轉(zhuǎn)是極為不
6、利的。為了防止這種情況,應(yīng)在終了程序前運(yùn)用Unload語句將窗體從內(nèi)存中刪除。 3. Show方法格式:窗體稱號(hào).Show 方式該方法用于顯示一個(gè)窗體。執(zhí)行Show方法后,窗體處于“加載并顯示形狀。窗體稱號(hào):可選項(xiàng),缺省時(shí)為當(dāng)前窗體。方式值:可選項(xiàng),取值0默許值或1,用以決議窗體是非模態(tài)還是模態(tài)。方式值為0時(shí),窗體為非模態(tài),此時(shí)用戶可對其他窗體進(jìn)展操作;方式值為1時(shí),窗體為模態(tài),此時(shí)用戶不能對其他窗體進(jìn)展操作,直到該窗體封鎖為止。注:該方法兼有裝入和顯示窗體兩種功能。也就是說,在執(zhí)行Show方法時(shí),假設(shè)窗體沒有裝入內(nèi)存,那么執(zhí)行時(shí)Show方法會(huì)自動(dòng)把窗體裝入內(nèi)存,然后顯示出來。4. Hide方
7、法格式:窗體稱號(hào).Hide該方法用于將窗體隱藏起來。執(zhí)行Hide方法后,窗體處于“加載但沒有顯示形狀,即窗體仍在內(nèi)存中,但窗體沒有顯示出來,與窗體卸載有本質(zhì)的區(qū)別。9.1.4 多重窗體運(yùn)用實(shí)例 和單一窗體的程序設(shè)計(jì)一樣,多重窗體程序設(shè)計(jì)也根本上分為5步:設(shè)計(jì)界面、設(shè)置屬性、編寫代碼、調(diào)試運(yùn)轉(zhuǎn)、保管程序。關(guān)鍵的問題是作為一個(gè)完好的工程,如何把多個(gè)窗體“組裝起來,并根據(jù)程序功能實(shí)現(xiàn)窗體間的切換。下面經(jīng)過一個(gè)簡單的例子進(jìn)展闡明。例9.1 設(shè)計(jì)一個(gè)手機(jī)話費(fèi)查詢系統(tǒng),包含三個(gè)窗體,即“歡迎窗體,“手機(jī)號(hào)碼窗體和“密碼窗體。三個(gè)窗體功能如下:1.“歡迎窗體為封面窗體,運(yùn)轉(zhuǎn)時(shí)首先顯示。單擊“單擊此處進(jìn)入按鈕
8、時(shí),翻開“手機(jī)號(hào)碼窗體,“歡迎窗體消逝。2.在“手機(jī)號(hào)碼窗體中輸入手機(jī)號(hào)碼后,單擊“確定按鈕,那么翻開“密碼窗體,“手機(jī)號(hào)碼窗體消逝;假設(shè)單擊“前往按鈕,那么前往“歡迎窗體。3.在“密碼窗體中輸入密碼后,單擊“確定按鈕,只需密碼非空那么顯示剩余話費(fèi);假設(shè)單擊“查詢下一個(gè)按鈕,那么前往“手機(jī)號(hào)碼窗體;假設(shè)單擊“前往按鈕,那么前往“歡迎窗體。 經(jīng)過該例可以發(fā)現(xiàn),多重窗體運(yùn)用程序中,經(jīng)過相關(guān)按鈕的設(shè)置,實(shí)現(xiàn)窗體的顯示與隱藏,從而將多個(gè)窗體銜接成一個(gè)有機(jī)的整體。9.2 Visual Basic工程構(gòu)造 9.2.1 規(guī)范模塊 9.2.2 窗體模塊 9.2.3 Sub Main 過程9.2.4 閑置循環(huán)與
9、DoEvents語句9.2.1 規(guī)范模塊 在單一窗體運(yùn)用程序中,一切的代碼都存放在一個(gè)窗體模塊中,而在多重窗體運(yùn)用程序中,每個(gè)窗體對應(yīng)一個(gè)窗體模塊,有些公共變量或通用過程需求在多個(gè)窗體中共用,這就需求創(chuàng)建規(guī)范模塊。規(guī)范模塊由全局變量聲明、模塊級聲明及通用過程等幾部分組成,規(guī)范模塊文件的擴(kuò)展名為“.bas。 在規(guī)范模塊中,全局變量用Public聲明,模塊級變量用Dim或Private聲明。當(dāng)需求聲明的全局變量或常量較多時(shí),可以把全局變量聲明放在一個(gè)單獨(dú)的規(guī)范模塊中。一個(gè)工程文件可以包含多個(gè)規(guī)范模塊,也可以把原有的規(guī)范模塊參與工程中。當(dāng)一個(gè)工程中含有多個(gè)規(guī)范模塊時(shí),各模塊中的過程不能重名。向工程中
10、添加規(guī)范模塊有以下三種方法:選擇“工程“添加模塊菜單,在翻開的“添加模塊對話框中,選擇“模塊翻開,即向工程中添加一個(gè)規(guī)范模塊,規(guī)范模塊的默許稱號(hào)為Module1。從工具欄上單擊“添加窗體按鈕右側(cè)的下拉箭頭,在彈出的列表中選擇“添加模塊選項(xiàng)。在工程資源管理器中選定“工程,右擊翻開快捷菜單,選取“添加項(xiàng)下的“添加模塊選項(xiàng),也可創(chuàng)建一個(gè)規(guī)范模塊。創(chuàng)建規(guī)范模塊后會(huì)翻開一個(gè)規(guī)范模塊窗口,即可進(jìn)展公共變量、常量、類型、外部過程和公共過程的聲明。9.2.2 窗體模塊 運(yùn)用程序中的每個(gè)窗體都有一個(gè)包含其代碼的窗體模塊。窗體模塊包括3部分內(nèi)容,即通用聲明部分、通用過程部分和事件過程部分,窗體模塊文件的擴(kuò)展名為“
11、.frm。假設(shè)在文本編輯器中察看窗體模塊,那么還會(huì)看到窗體及其控件的描畫,包括它們的屬性設(shè)置值。 在窗體模塊的通用聲明部分中,用Dim語句聲明的變量,其作用域?yàn)檎麄€(gè)窗體模塊,即該模塊中的一切過程。通用聲明部分普通放在代碼的最前面,而通用過程和事件過程的位置沒有嚴(yán)厲的限制。 在窗體模塊中,可以調(diào)用規(guī)范模塊中的過程,也可以調(diào)用其它窗體模塊中的過程。留意,被調(diào)用的過程必需用Public定義為公共過程。規(guī)范模塊中的過程,可直接調(diào)用,假設(shè)調(diào)用其它窗體模塊中的過程,那么必需加上過程所在的窗體名。9.2.3 Sub Main過程 Sub Main過程是在規(guī)范模塊中建立的過程,通常是作為啟動(dòng)過程編寫的。假設(shè)選
12、用Sub Main過程作為啟動(dòng)對象,那么在程序啟動(dòng)時(shí)不加載任何窗體,而是運(yùn)轉(zhuǎn)一個(gè)Sub Main過程,然后根據(jù)程序代碼來決議能否加載窗體或加載哪一個(gè)窗體。1.沒有啟動(dòng)窗體時(shí)的啟動(dòng) 有時(shí)候也許需求運(yùn)用程序啟動(dòng)時(shí)不加載任何窗體。例如:能夠想先運(yùn)轉(zhuǎn)裝入數(shù)據(jù)文件的代碼,然后根據(jù)數(shù)據(jù)文件的內(nèi)容決議顯示幾個(gè)不同窗體中的哪一個(gè)。要做到這一點(diǎn),可以在規(guī)范模塊中創(chuàng)建一個(gè)名為 Main 的子過程,如下面的例子所示。 Sub Main() Dim intStatus As Integer 調(diào)用一個(gè)函數(shù)過程來檢驗(yàn)用戶形狀 intStatus = GetUserStatus() 根據(jù)形狀顯示某個(gè)啟動(dòng)窗體 If intS
13、tatus = 1 Then frmMain.Show Else frmPassword.Show End IfEnd Sub需求留意的是,Sub Main過程必需在規(guī)范模塊中創(chuàng)建,不能在窗體模塊內(nèi)。一個(gè)工程可以含有多個(gè)規(guī)范模塊,但Sub Main過程只能有一個(gè)。Sub Main過程通常是作為啟動(dòng)過程編寫的,但是Visual Basic并不可以自動(dòng)識(shí)別Sub Main過程,也就是說,并不自動(dòng)把它作為啟動(dòng)過程。假設(shè)將 Sub Main 過程設(shè)為啟動(dòng)對象,需求選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項(xiàng)卡,在“啟動(dòng)對象下拉列表中選定“Sub Main。2.顯示啟動(dòng)時(shí)的快速顯示 假設(shè)
14、啟動(dòng)時(shí)有一個(gè)較長的執(zhí)行過程,例如要從數(shù)據(jù)庫中裝入大量數(shù)據(jù)或者要裝入一些大型位圖,這時(shí)能夠希望在啟動(dòng)時(shí)給出一個(gè)快速顯示??焖亠@示是一個(gè)窗體,它通常顯示的是諸如運(yùn)用程序名,版權(quán)信息和一個(gè)簡單的位圖等內(nèi)容。啟動(dòng) Visual Basic 時(shí)所顯示的屏幕就是一個(gè)快速顯示。 當(dāng)一些啟動(dòng)例程正在執(zhí)行時(shí),快速顯示能吸援用戶的留意,呵斥運(yùn)用程序裝載很快的錯(cuò)覺。當(dāng)這些啟動(dòng)例程完成后,可以裝載第一個(gè)窗體并卸載快速顯示。對于快速顯示的設(shè)計(jì),應(yīng)盡量簡單為好。假設(shè)運(yùn)用大量位圖或者大量控件,那么快速顯示本身裝載將會(huì)變慢。 假設(shè)要顯示快速顯示,需求將Sub Main 過程作為啟動(dòng)對象,并用 Show 方法顯示該窗體:Pri
15、vate Sub Main() frmSplash.Show 顯示快速顯示 在此處添加啟動(dòng)過程。 . . frmMain.Show 顯示主窗體 Unload frmSplash 卸載快速顯示End Sub例9.2 設(shè)計(jì)一個(gè)“古詩選讀程序,該程序由7個(gè)窗體組成。分別為快速顯示窗體、封面窗體、列表窗體以及4個(gè)用來顯示古詩內(nèi)容的窗體。程序運(yùn)轉(zhuǎn)后,在裝載數(shù)據(jù)時(shí)顯示快速顯示窗體,然后顯示封面窗體并卸載快速顯示,接著顯示列表窗體,在該窗體中列出所要閱讀的古詩目錄4個(gè),雙擊某個(gè)目錄后,在另一個(gè)窗體的文本框中顯示相應(yīng)的詩文內(nèi)容。9.2.4 閑置循環(huán)與DoEvents語句 Visual Basic屬于事件驅(qū)動(dòng)型
16、言語,即只需當(dāng)發(fā)生某個(gè)事件時(shí),才執(zhí)行相應(yīng)的程序,否那么,運(yùn)用程序會(huì)處于“閑置形狀。另一方面,當(dāng)Visual Basic執(zhí)行一個(gè)過程時(shí),將停頓對其它事件如鼠標(biāo)事件的處置,直至執(zhí)行完End Sub或End Function指令為止。為了改動(dòng)這種執(zhí)行順序,VB提供了閑置循環(huán)Idle Loop和DoEvents語句。 閑置循環(huán)就是當(dāng)運(yùn)用程序處于閑置形狀時(shí),用一個(gè)循環(huán)來執(zhí)行其它操作。簡言之,閑置循環(huán)就是運(yùn)用程序在閑置形狀下執(zhí)行的循環(huán)。但執(zhí)行閑置循環(huán)又會(huì)占用全部CPU時(shí)間,不允許執(zhí)行其它事件過程。為此,Visual Basic提供了一個(gè)DoEvents語句,無論何時(shí),一執(zhí)行到DoEvents語句,就會(huì)把系統(tǒng)的控制權(quán)交給周圍環(huán)境運(yùn)用,然后再回到原來程序繼續(xù)執(zhí)行。 DoEvents既可以作為語句運(yùn)用,也可以作為函數(shù)運(yùn)用。作為函數(shù)運(yùn)用時(shí),前往值為當(dāng)前裝入Visual Basic運(yùn)用程序任務(wù)區(qū)的窗體號(hào),假設(shè)不想運(yùn)用這個(gè)前往值,那么可以隨意用一個(gè)變量接納前往值。 DoEvents語句格式為: DoEventsDoEvents函數(shù)格式為: 窗體號(hào) | 變量名=DoEvents() 例9.3 編寫程序,實(shí)驗(yàn)閑置循環(huán)和DoEvents語句。 窗體上有一個(gè)標(biāo)簽和兩個(gè)命令按鈕,當(dāng)系統(tǒng)處
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024水箱安全檢測與銷售服務(wù)合作協(xié)議3篇
- 2025年度銷售合同終止及市場拓展合作管理協(xié)議2篇
- 個(gè)體工商戶商鋪?zhàn)赓U標(biāo)準(zhǔn)協(xié)議模板版A版
- 2024年度商鋪離婚協(xié)議及企業(yè)經(jīng)營權(quán)轉(zhuǎn)讓與風(fēng)險(xiǎn)分擔(dān)合同3篇
- 二零二五年豪華二手車經(jīng)銷合作框架合同2篇
- 二零二五年砂石料買賣協(xié)議3篇
- 2024標(biāo)準(zhǔn)窗簾買賣合同樣本版B版
- 二零二五版25MW柴油發(fā)電機(jī)電站發(fā)電設(shè)備安裝調(diào)試服務(wù)協(xié)議3篇
- 西安明德理工學(xué)院《項(xiàng)目管理與案例分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版家政服務(wù)三方合同范本
- 心理學(xué)專業(yè)知識(shí)考試參考題庫500題(含答案)(一)
- 2024年浙江高考技術(shù)試題(含答案)
- 資管行業(yè)投研一體化建設(shè)
- 提高保險(xiǎn)公司客戶投訴處理能力的整改措施
- 物業(yè)費(fèi)收取協(xié)議書模板
- 電工(中級工)理論知識(shí)練習(xí)題(附參考答案)
- 工業(yè)設(shè)計(jì)概論試題
- 起重機(jī)的維護(hù)保養(yǎng)要求與月度、年度檢查記錄表
- 消防設(shè)施維護(hù)保養(yǎng)記錄表
- 城區(qū)生活垃圾填埋場封場項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 垃圾分類巡檢督導(dǎo)方案
評論
0/150
提交評論