多重窗體與環(huán)境應(yīng)用_第1頁
多重窗體與環(huán)境應(yīng)用_第2頁
多重窗體與環(huán)境應(yīng)用_第3頁
多重窗體與環(huán)境應(yīng)用_第4頁
多重窗體與環(huán)境應(yīng)用_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

多重窗體與環(huán)境應(yīng)用第1頁,課件共27頁,創(chuàng)作于2023年2月第10章多重窗體與環(huán)境應(yīng)用10.1多重窗體與多文檔窗體VisualBasic允許在一個工程(程序)中使用多個窗體。多窗體程序一般有兩種形式,單文檔界面(SDI)和多文檔界面(MDI)。前者又稱為多重窗體界面,每個窗體都是獨立的、平等的;后者所包含的多個窗體則被放置在一個(父)窗體中,父窗體為應(yīng)用程序中所有的(子)窗體提供工作空間。第2頁,課件共27頁,創(chuàng)作于2023年2月10.1.1建立多重窗體應(yīng)用程序多重窗體應(yīng)用程序的代碼是針對各個窗體編寫的,因此其設(shè)計基礎(chǔ)是單個窗體的設(shè)計。而在多重窗體應(yīng)用程序中添加和刪除窗體的操作需要使用“工程”菜單。1.在工程中添加窗體在當前工程中添加一個新的窗體有3種方法:在“工程”菜單中選擇“添加窗體”菜單項。在工具欄中選擇“添加<項>”,單擊其下拉箭頭,從彈出的列表中選擇“添加窗體”。在工程資源管理器中的工程圖標上單擊鼠標右鍵,打開快捷菜單,選擇“添加”子菜單下的“添加窗體”選項。第3頁,課件共27頁,創(chuàng)作于2023年2月圖10-1“添加窗體”對話框添加的新窗體(設(shè)為第二個)被命名為Form2,后續(xù)的窗體則分別命名為Form3、Form4等等。可以在屬性窗口修改新窗體的名稱。2.在工程中刪除窗體從工程中刪除窗體的方法有兩種:先選定欲刪除的窗體,然后在“工程”菜單中選擇“移除〈窗體名〉”。在工程資源管理器中欲刪除的窗體名上單擊鼠標右鍵,打開快捷菜單,選擇“移除〈窗體名〉”。第4頁,課件共27頁,創(chuàng)作于2023年2月3.保存窗體每建立一個新的窗體,都應(yīng)將窗體存盤,一個窗體保存在一個擴展名為.frm的窗體文件中。保存窗體可以在“文件”菜單中選擇“保存〈窗體名〉”或“〈窗體名〉另存為”選項。對于新建立的工程,在“文件”菜單中選擇“保存工程”或“工程另存為”選項,系統(tǒng)將自動彈出對話框,提示用戶保存工程的各個文件,如標準模塊文件(.bas)、窗體文件(.frm)、工程文件(.vbp)。第5頁,課件共27頁,創(chuàng)作于2023年2月4.使用工程資源管理器多重窗體實際上是單一窗體的集合,每個窗體都需要獨立進行創(chuàng)建和修改。在設(shè)計時,利用工程資源管理器可以在各個窗體間進行切換(如圖10-2所示)。圖10-2“工程資源管理器”第6頁,課件共27頁,創(chuàng)作于2023年2月10.1.2多重窗體程序的執(zhí)行在單窗體工程中,所有的操作都在一個窗體中完成,不需要在多個窗體間切換。而在多窗體工程中,則需要打開、關(guān)閉、顯示或隱藏指定的窗體,下面介紹相應(yīng)的語句和方法。1.加載與卸載窗體加載窗體是指將窗體文件裝入內(nèi)存,而卸載窗體是指將窗體從內(nèi)存中刪除。VB有兩條語句專門用于對窗體進行加載與卸載的操作:Load語句和Unload語句。第7頁,課件共27頁,創(chuàng)作于2023年2月1)Load語句是加載窗體的命令,其語法格式為:Load〈窗體名〉其中〈窗體名〉即窗體的Name屬性。執(zhí)行Load語句后,可以引用窗體中的各對象,如控件及其各種屬性,但此時窗體并沒有顯示出來。2)Unload語句是卸載窗體的命令,其語法格式為:Unload〈窗體名〉該語句與Load語句的功能相反,它清除內(nèi)存中指定的窗體。第8頁,課件共27頁,創(chuàng)作于2023年2月2.顯示與隱藏窗體窗體用Load語句加載后,并沒有被顯示出來。若要顯示窗體,可以使用窗體的Show方法,其語法格式為: [〈窗體名〉.]Show[〈窗體模式〉]如果省略〈窗體名〉,則顯示當前窗體。〈窗體模式〉用來指定窗體狀態(tài),取值為1或0。當取值為1時,窗體為“模態(tài)型”,屏幕中只有該窗體為活動窗口,其它窗口都不能被操作。當取值為0時,窗體為“非模態(tài)型”。Show方法兼有加載與顯示窗體的兩種功能。在執(zhí)行Show方法時,若窗體不在內(nèi)存中,則Show自動加載窗體并顯示出來。第9頁,課件共27頁,創(chuàng)作于2023年2月若要暫時關(guān)閉窗體而不將窗體卸載,可以使用窗體的Hide方法將窗體隱藏起來,其語法格式為: [〈窗體名〉.]Hide[〈窗體模式〉]Hide方法將窗體隱藏起來,即不在屏幕上顯示,但仍在內(nèi)存中。說明:窗體顯示時,其Visible屬性為True,隱藏時Visible屬性為False。也可以在代碼中通過修改Visible屬性來顯示或隱藏窗體。第10頁,課件共27頁,創(chuàng)作于2023年2月3.啟動窗體當工程包含多個窗體的時候,VB規(guī)定,必須指定其中一個窗體作為“啟動窗體”。如果不指定啟動窗體,則系統(tǒng)默認第1個建立的窗體為啟動窗體。只有啟動窗體才能在工程運行時自動顯示出來,其他窗體必須通過Show方法才能看到。指定啟動窗體的步驟是:1)選擇“工程”菜單中的“〈工程名〉屬性”選項,打開“工程屬性”對話框。2)選擇“通用”選項卡,在“啟動對象”下拉列表中,選擇指定的窗體作為啟動窗體。3)按“確定”按鈕。第11頁,課件共27頁,創(chuàng)作于2023年2月4.程序的關(guān)閉應(yīng)用程序結(jié)束時,應(yīng)卸載所有的窗體。若仍有隱藏的窗體存在,則程序繼續(xù)運行。使用End語句結(jié)束程序,系統(tǒng)自動卸載工程中的所有窗體。第12頁,課件共27頁,創(chuàng)作于2023年2月10.1.3SubMain過程在一個含有多個窗體或多個工程的應(yīng)用程序中,有時候需要在顯示多個窗體之前對一些條件進行初始化;有時候也許要應(yīng)用程序啟動時不加載任何窗體。例如:可能想先運行裝入數(shù)據(jù)文件的代碼,然后再根據(jù)數(shù)據(jù)文件的內(nèi)容決定顯示幾個不同窗體中的哪一個。即需要在啟動程序時執(zhí)行一個特定的過程。在VB中,這樣的過程稱為啟動過程,并命名為SubMain。例如:

第13頁,課件共27頁,創(chuàng)作于2023年2月SubMain過程不能在窗體模塊內(nèi),必須在標準模塊中。其建立方法如下:1)選擇“工程”菜單中的“添加模塊”菜單項。2)在打開的“添加模塊”對話框中按“打開”按鈕。3)在該模塊(默認名稱為Module1)的代碼窗口中鍵入:SubMain后按回車鍵,系統(tǒng)自動給出過程的開始行和結(jié)束行。4)在其中輸入過程代碼,并保存模塊文件Module1.bas。5)選擇“工程”菜單中的“工程屬性”菜單項,打開“工程屬性”對話框。6)選擇“通用”選項卡,在“啟動對象”下拉列表中,選擇SubMain,并按“確定”按鈕。第14頁,課件共27頁,創(chuàng)作于2023年2月10.1.4多重窗體程序應(yīng)用【例10-1】為應(yīng)用程序增加一個“登錄”子窗體來控制非法用戶的使用,如圖10-4所示。圖10-4“登錄”子窗體Form2與應(yīng)用程序窗體Form1選擇“工程”菜單中的“添加窗體”菜單項,打開“添加窗體”對話框。設(shè)置對象屬性如圖10-4。

第15頁,課件共27頁,創(chuàng)作于2023年2月設(shè)計“登錄”子窗體Form2中代碼。編寫命令按鈕Command1(確定)的Click事件代碼: PrivateSubCommand1_Click() IfLCase(Text1.Text)="abcde"Then UnloadMe '卸載當前窗體 Form1.Show Else MsgBox"對不起,口令錯!" Text1.SelStart=0 Text1.SelLength=Len(Text1.Text) Text1.SetFocus EndIf EndSub第16頁,課件共27頁,創(chuàng)作于2023年2月編寫命令按鈕Command2(取消)的Click事件代碼: PrivateSubCommand2_Click() End EndSub指定啟動窗體。選擇“工程”菜單中的“〈工程名〉屬性”選項,打開“工程屬性對話框”,選擇“通用”選項卡,在“啟動對象”下拉列表中,選擇Form2作為啟動窗體。保存窗體。第17頁,課件共27頁,創(chuàng)作于2023年2月10.1.5多文檔(MDI)窗體多文檔界面的應(yīng)用可同時打開多個文檔,每個文檔都顯示在自己的窗口中。包含文檔的子窗體被放置在父窗體中,父窗體為應(yīng)用程序中所有的子窗體提供工作空間。子窗體實際上就是MDIChild屬性設(shè)置為True的普通窗體,一個應(yīng)用程序可以包含多個相似或不相似的MDI子窗體。在運行時,子窗體顯示在MDI窗體(父窗體)的工作區(qū)內(nèi)。當子窗體最小化時,它的圖標顯示在MDI窗體的工作區(qū)內(nèi),而不是在任務(wù)欄中。第18頁,課件共27頁,創(chuàng)作于2023年2月創(chuàng)建MDI窗體的一般步驟為:1)在“工程”菜單中選擇“添加MDI窗體”子菜單,系統(tǒng)顯示“添加MDI窗體對話框”,如圖10-5所示。2)選擇“新建”選項卡中的“MDI”窗體,單擊“打開”按鈕,屏幕上出現(xiàn)一個名字為Mdiform1的MDI窗體(它的底色與普通窗體不同),如圖10-6所示。圖10-5“添加MDI窗體”對話框圖10-6新添加的MDI窗體

第19頁,課件共27頁,創(chuàng)作于2023年2月3)單擊工具欄上的“啟動”按鈕運行程序,一個空白的MDI窗體出現(xiàn)在屏幕上。MDI窗體與普通窗體不同,除非控件具有Align屬性(如PictureBox)或者具有不可見界面(如Timer),否則不能將控件直接放置在MDI窗體上。任何時候,一個應(yīng)用程序只能有一個MDI窗體。第20頁,課件共27頁,創(chuàng)作于2023年2月多文檔界面的特點:1)所有子窗體均顯示在MDI窗體(父窗體)的工作區(qū)中。用戶可以改變、移動子窗體的大小,但被限制在MDI窗體中。2)當最小化一個子窗體時,其圖標將顯示于MDI窗體上而不是在任務(wù)欄中。當最小化MDI窗體時,所有子窗體也被最小化,只有MDI窗體的圖標出現(xiàn)在任務(wù)欄中。3)當最大化一個子窗體時,其標題與MDI窗體的標題一起顯示在MDI窗體的標題欄上。4)MDI窗體和子窗體可以有各自的菜單,當子窗體加載時覆蓋MDI窗體的菜單。第21頁,課件共27頁,創(chuàng)作于2023年2月10.2DoEvents函數(shù)與閑置循環(huán)在一般情況下,只有當事件發(fā)生時VB才會執(zhí)行相應(yīng)的過程代碼。這就是說,如果沒有事件發(fā)生,應(yīng)用程序?qū)⑻幱凇伴e置”狀態(tài)。另一方面,當VB執(zhí)行一個過程時,將停止對其他事件(如鼠標事件)的響應(yīng),直至過程執(zhí)行完畢。也就是說,如果VB處于“忙碌”狀態(tài),事件過程只能在隊列中等待,直到當前過程結(jié)束。為了改變這種順序,VB提供了DoEvents函數(shù)。第22頁,課件共27頁,創(chuàng)作于2023年2月10.2.1DoEvents函數(shù)使用DoEvents函數(shù),可以將應(yīng)用程序的控制權(quán)交還給Windows操作系統(tǒng),以便處理其他事件。當操作系統(tǒng)處理完隊列中的事件之后,返回控制權(quán)。DoEvents函數(shù)的語法格式為: DoEvents[()]說明:1)DoEvents函數(shù)返回一個Integer,以代表VisualBasic獨立版本中打開的窗體數(shù)目。2)若省略函數(shù)括號,則DoEvents可以作為語句使用。第23頁,課件共27頁,創(chuàng)作于2023年2月【例10-2】使用DoEvents,可以在執(zhí)行循環(huán)的過程中進行其他操作,如圖10-7所示。編寫命令按鈕Command1(開始循環(huán))的Click事件代碼:PrivateSubCommand1_Click()Fori=1To200000DoEventsForj=1To1000NextjLabel1.Caption=iNextEndSub 圖10-7在執(zhí)行循環(huán)的過程中進行其他操作第24頁,課件共27頁,創(chuàng)作于2023年2月編寫命令按鈕Command2(改變標題)的Click事件代碼: PrivateSubCommand2_Click() Me.Caption=Label1.Caption EndSub說明:運行程序,單擊“開始循環(huán)”按鈕,將顯示循環(huán)變量i的值。由于加了延時循環(huán),程序的運行時間較長。如果沒有DoEvents語句,則程序運行期間不能進行任何操作。有了DoEvents語句,則可以在循環(huán)的過程中進行其他操作,如移動窗體、改變窗體大小、單擊“改變標題”按鈕等。第25頁,課件共27頁,創(chuàng)作于2023年2月10.2.2閑置循環(huán)編寫一個循環(huán),當程序處于閑置狀態(tài)時來執(zhí)行該循環(huán),這個循環(huán)稱為“閑置循環(huán)”。【例10-3】編寫“閑置循環(huán)”,當沒有事件發(fā)生的時候,作計數(shù)循環(huán),如圖10-8所示。首先在工程中添加一個模塊Module1,編寫其中代碼: PublicaAsLong '聲明全局變量 Submain() 'Main程序

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論