第09章 多重窗體與環(huán)境應用ppt課件_第1頁
第09章 多重窗體與環(huán)境應用ppt課件_第2頁
第09章 多重窗體與環(huán)境應用ppt課件_第3頁
第09章 多重窗體與環(huán)境應用ppt課件_第4頁
第09章 多重窗體與環(huán)境應用ppt課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第9章 多重窗體與環(huán)境運用9.1 多重窗體9.2 Visual Basic工程構(gòu)造 9.1 多重窗體 9.1.1 多重窗體管理 9.1.2 設置啟動窗體 9.1.3 窗體處置 9.1.4 多重窗體運用實例 9.1.1 多重窗體管理1. 向工程中添加窗體向工程中添加新窗體有以下三種方法:選擇“工程“添加窗體菜單,在翻開的“添加窗體對話框中,選擇“窗體翻開,即向工程中添加一個新窗體。新窗體的默許稱號和標題(Caption屬性)均由集成開發(fā)環(huán)境自動陳列確定,如第二個創(chuàng)建的窗體,其默許的稱號為Form2,標題為Form2。從工具欄上選擇“添加窗體按鈕,向工程中添加一個新窗體。在工程資源管理器中選定“工

2、程,單擊右鍵翻開快捷菜單,選那么“添加 “添加窗體選項,也可創(chuàng)建一個新窗體。2. 移除工程中的窗體移除工程中多余的窗體有以下兩種方法: 在工程資源管理器窗口中選定要刪除的窗體,選擇“工程“移除窗體菜單項。 在工程資源管理器中選中要刪除的窗體,單擊右鍵彈出其快捷菜單,選取“移除窗體選項。3. 保管窗體 在多重窗體運用程序中,每個窗體都要單獨保管,方法同單一窗體運用程序一樣。在工程資源管理器窗口中選定要保管的窗體,選擇“文件“保管窗體菜單或“窗體另存為菜單,或者在工程資源管理器中翻開快捷菜單,選取“保管窗體或“窗體另存為選項。每個窗體保管后都生成一個擴展名為“.frm的文件。9.1.2 設置啟動窗

3、體 在多重窗體運用程序中,由于運用程序由多個窗體組成,就是由多個界面組成,因此在程序開場運轉(zhuǎn)時,必需有一個窗體是首先出現(xiàn)的,即啟動窗體。VB集成開發(fā)環(huán)境在創(chuàng)建新工程時,把窗體Form1作為系統(tǒng)缺省的啟動窗體。假設用戶在實踐運用或在調(diào)試程序中希望把某個窗體作為啟動窗體,在程序運轉(zhuǎn)時首先出如今屏幕上,可用以下方法實現(xiàn): 選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項卡。在“啟動對象下拉列表中顯示了該工程一切的窗體和“Sub Main過程,用戶可以根據(jù)需求進展選擇。假設選用Sub Main過程作為啟動對象,那么在程序啟動時不加載任何窗體,而是運轉(zhuǎn)一個Sub Main過程,然后根據(jù)程序代

4、碼來決議能否加載窗體或加載哪一個窗體。9.1.3 窗體處置 在運用相關(guān)語句和方法前,大家有必要先了解窗體在運用程序中的三種存在方式:沒有被加載:這時,窗體雖然是運用程序的構(gòu)件,但并沒有正式成為工程的組成部分,即窗體不會占用系統(tǒng)資源。加載但沒有顯示:這時,窗體曾經(jīng)被加載,成為工程的組成部分,但并沒有顯示出來。加載并顯示:這時,窗體曾經(jīng)被正式顯示出來,當然窗體一定要被加載后才干顯示出來。 假設運用程序中只需一個窗體,在程序運轉(zhuǎn)時這個窗領(lǐng)會被自動加載并顯示出來。假設運用程序由多個窗體組成,那么會有一個窗體被設置為啟動窗體。在程序運轉(zhuǎn)時啟動窗體同樣被自動加載并顯示,而其他的窗體那么必需在曾經(jīng)啟動的窗體

5、中進展加載或顯示,這就要用到下面幾個相關(guān)語句和方法。1. Load語句格式:Load 該語句用于將一個窗體裝入內(nèi)存。執(zhí)行Load語句后,窗體處于“加載但沒有顯示形狀,此時可以援用窗體中的控件及各種屬性,但窗體沒有顯示出來。2. Unload語句格式:Unload 該語句用于卸載內(nèi)存中指定的窗體,與Load語句的功能相反。執(zhí)行Unload語句后,窗體處于“沒有被加載形狀,不會占用系統(tǒng)資源。注:運用程序終了后,應卸載一切的窗體,否那么會出現(xiàn)這種景象,即運用程序雖已表現(xiàn)為終了形狀,但實踐上某個窗體仍處于隱藏形狀,并占用一定系統(tǒng)資源。Windows系統(tǒng)本身不會自動處置此類問題,這對于程序的運轉(zhuǎn)是極為不

6、利的。為了防止這種情況,應在終了程序前運用Unload語句將窗體從內(nèi)存中刪除。 3. Show方法格式:窗體稱號.Show 方式該方法用于顯示一個窗體。執(zhí)行Show方法后,窗體處于“加載并顯示形狀。窗體稱號:可選項,缺省時為當前窗體。方式值:可選項,取值0默許值或1,用以決議窗體是非模態(tài)還是模態(tài)。方式值為0時,窗體為非模態(tài),此時用戶可對其他窗體進展操作;方式值為1時,窗體為模態(tài),此時用戶不能對其他窗體進展操作,直到該窗體封鎖為止。注:該方法兼有裝入和顯示窗體兩種功能。也就是說,在執(zhí)行Show方法時,假設窗體沒有裝入內(nèi)存,那么執(zhí)行時Show方法會自動把窗體裝入內(nèi)存,然后顯示出來。4. Hide方

7、法格式:窗體稱號.Hide該方法用于將窗體隱藏起來。執(zhí)行Hide方法后,窗體處于“加載但沒有顯示形狀,即窗體仍在內(nèi)存中,但窗體沒有顯示出來,與窗體卸載有本質(zhì)的區(qū)別。9.1.4 多重窗體運用實例 和單一窗體的程序設計一樣,多重窗體程序設計也根本上分為5步:設計界面、設置屬性、編寫代碼、調(diào)試運轉(zhuǎn)、保管程序。關(guān)鍵的問題是作為一個完好的工程,如何把多個窗體“組裝起來,并根據(jù)程序功能實現(xiàn)窗體間的切換。下面經(jīng)過一個簡單的例子進展闡明。例9.1 設計一個手機話費查詢系統(tǒng),包含三個窗體,即“歡迎窗體,“手機號碼窗體和“密碼窗體。三個窗體功能如下:1.“歡迎窗體為封面窗體,運轉(zhuǎn)時首先顯示。單擊“單擊此處進入按鈕

8、時,翻開“手機號碼窗體,“歡迎窗體消逝。2.在“手機號碼窗體中輸入手機號碼后,單擊“確定按鈕,那么翻開“密碼窗體,“手機號碼窗體消逝;假設單擊“前往按鈕,那么前往“歡迎窗體。3.在“密碼窗體中輸入密碼后,單擊“確定按鈕,只需密碼非空那么顯示剩余話費;假設單擊“查詢下一個按鈕,那么前往“手機號碼窗體;假設單擊“前往按鈕,那么前往“歡迎窗體。 經(jīng)過該例可以發(fā)現(xiàn),多重窗體運用程序中,經(jīng)過相關(guān)按鈕的設置,實現(xiàn)窗體的顯示與隱藏,從而將多個窗體銜接成一個有機的整體。第一個窗體第二個窗體第三個窗體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 = 話費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ī)范模塊 在單一窗體運用程序中,一切的代碼都存放在一個窗體模塊中,而在多重窗體運用程序中,每個窗體對應一個窗體模塊,有些公共變量或通用過程需求在多個窗體中共用,這就需求創(chuàng)建規(guī)范模塊。規(guī)范模塊由全局變量聲明、模塊級聲明及通用過程等幾部分組成,規(guī)范模塊文件的擴展名為“.bas。 在規(guī)范模塊中,全局變量用Public聲明,模塊級變量用Dim或P

11、rivate聲明。當需求聲明的全局變量或常量較多時,可以把全局變量聲明放在一個單獨的規(guī)范模塊中。一個工程文件可以包含多個規(guī)范模塊,也可以把原有的規(guī)范模塊參與工程中。當一個工程中含有多個規(guī)范模塊時,各模塊中的過程不能重名。向工程中添加規(guī)范模塊有以下三種方法:選擇“工程“添加模塊菜單,在翻開的“添加模塊對話框中,選擇“模塊翻開,即向工程中添加一個規(guī)范模塊,規(guī)范模塊的默許稱號為Module1。從工具欄上單擊“添加窗體按鈕右側(cè)的下拉箭頭,在彈出的列表中選擇“添加模塊選項。在工程資源管理器中選定“工程,右擊翻開快捷菜單,選取“添加項下的“添加模塊選項,也可創(chuàng)建一個規(guī)范模塊。創(chuàng)建規(guī)范模塊后會翻開一個規(guī)范模

12、塊窗口,即可進展公共變量、常量、類型、外部過程和公共過程的聲明。9.2.2 窗體模塊 運用程序中的每個窗體都有一個包含其代碼的窗體模塊。窗體模塊包括3部分內(nèi)容,即通用聲明部分、通用過程部分和事件過程部分,窗體模塊文件的擴展名為“.frm。假設在文本編輯器中察看窗體模塊,那么還會看到窗體及其控件的描畫,包括它們的屬性設置值。 在窗體模塊的通用聲明部分中,用Dim語句聲明的變量,其作用域為整個窗體模塊,即該模塊中的一切過程。通用聲明部分普通放在代碼的最前面,而通用過程和事件過程的位置沒有嚴厲的限制。 在窗體模塊中,可以調(diào)用規(guī)范模塊中的過程,也可以調(diào)用其它窗體模塊中的過程。留意,被調(diào)用的過程必需用P

13、ublic定義為公共過程。規(guī)范模塊中的過程,可直接調(diào)用,假設調(diào)用其它窗體模塊中的過程,那么必需加上過程所在的窗體名。9.2.3 Sub Main過程 Sub Main過程是在規(guī)范模塊中建立的過程,通常是作為啟動過程編寫的。假設選用Sub Main過程作為啟動對象,那么在程序啟動時不加載任何窗體,而是運轉(zhuǎn)一個Sub Main過程,然后根據(jù)程序代碼來決議能否加載窗體或加載哪一個窗體。1.沒有啟動窗體時的啟動 有時候也許需求運用程序啟動時不加載任何窗體。例如:能夠想先運轉(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、程,也就是說,并不自動把它作為啟動過程。假設將 Sub Main 過程設為啟動對象,需求選擇“工程“工程屬性菜單,在“工程屬性對話框中選中“通用選項卡,在“啟動對象下拉列表中選定“Sub Main。2.顯示啟動時的快速顯示 假設啟動時有一個較長的執(zhí)行過程,例如要從數(shù)據(jù)庫中裝入大量數(shù)據(jù)或者要裝入一些大型位圖,這時能夠希望在啟動時給出一個快速顯示??焖亠@示是一個窗體,它通常顯示的是諸如運用程序名,版權(quán)信息和一個簡單的位圖等內(nèi)容。啟動 Visual Basic 時所顯示的屏幕就是一個快速顯示。 當一些啟動例程正在執(zhí)行時,快速顯示能吸援用戶的留意,呵斥運用程序裝載很快的錯覺。當這些啟動例程完成后,可以

16、裝載第一個窗體并卸載快速顯示。對于快速顯示的設計,應盡量簡單為好。假設運用大量位圖或者大量控件,那么快速顯示本身裝載將會變慢。 假設要顯示快速顯示,需求將Sub Main 過程作為啟動對象,并用 Show 方法顯示該窗體:Private Sub Main() frmSplash.Show 顯示快速顯示 在此處添加啟動過程。 . . frmMain.Show 顯示主窗體 Unload frmSplash 卸載快速顯示End Sub例9.2 設計一個“古詩選讀程序,該程序由7個窗體組成。分別為快速顯示窗體、封面窗體、列表窗體以及4個用來顯示古詩內(nèi)容的窗體。程序運轉(zhuǎn)后,在裝載數(shù)據(jù)時顯示快速顯示窗體,

17、然后顯示封面窗體并卸載快速顯示,接著顯示列表窗體,在該窗體中列出所要閱讀的古詩目錄4個,雙擊某個目錄后,在另一個窗體的文本框中顯示相應的詩文內(nèi)容。9.2.4 閑置循環(huán)與DoEvents語句 Visual Basic屬于事件驅(qū)動型言語,即只需當發(fā)生某個事件時,才執(zhí)行相應的程序,否那么,運用程序會處于“閑置形狀。另一方面,當Visual Basic執(zhí)行一個過程時,將停頓對其它事件如鼠標事件的處置,直至執(zhí)行完End Sub或End Function指令為止。為了改動這種執(zhí)行順序,VB提供了閑置循環(huán)Idle Loop和DoEvents語句。 閑置循環(huán)就是當運用程序處于閑置形狀時,用一個循環(huán)來執(zhí)行其它操

18、作。簡言之,閑置循環(huán)就是運用程序在閑置形狀下執(zhí)行的循環(huán)。但執(zhí)行閑置循環(huán)又會占用全部CPU時間,不允許執(zhí)行其它事件過程。為此,Visual Basic提供了一個DoEvents語句,無論何時,一執(zhí)行到DoEvents語句,就會把系統(tǒng)的控制權(quán)交給周圍環(huán)境運用,然后再回到原來程序繼續(xù)執(zhí)行。 DoEvents既可以作為語句運用,也可以作為函數(shù)運用。作為函數(shù)運用時,前往值為當前裝入Visual Basic運用程序任務區(qū)的窗體號,假設不想運用這個前往值,那么可以隨意用一個變量接納前往值。 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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論