10.1建立多重窗體應用程序
10.1.1 建立多重窗體的語句和方法
多重窗體程序設計中,需要打開,、關閉,、隱藏或顯示指定的窗體,這可以通過相應的語句和方法來實現,。
1.Load語句
Load語句是把一個窗體裝入內存。其語法格式為
Load 窗體名稱
2.Unload語句
UnLoad語句清除內存中指定的窗體,。其語法格式為
UnLoad 窗體名稱
3.Show方法
Show方法是用來顯示一個窗體,,它兼有裝入窗體和顯示窗體兩種功能。
其語法格式為
[窗體名稱].Show [模式]
其中,,“窗體名稱”是指窗體的Name屬性,,缺省時指當前窗體;
“模式”是指用來確定窗體的狀態(tài),,它可以取兩種值,,即為0和1
4.Hide方法
Hide方法是用來將窗體暫時隱藏起來,不在屏幕上顯示出來,,
其語法格式為
[窗體名稱].Hide
10.1.2建立多重窗體應用示例
多重窗體程序中,,經常要用到關鍵字Me,它代表的是程序代碼所在的窗體。
例如,,創(chuàng)建一個工程,,由三個窗體組成,Form1用于輸入用戶名和口令,,當輸入正確時單擊“確定”按鈕顯示Form2,,當輸入錯誤時則顯示Form3,單擊退出按鈕結束程序,;Form2中用文本框顯示系統(tǒng)信息,,單擊“返回”按鈕回到Form1;Form3為退出窗體,,單擊窗體則結束程序,。
1.創(chuàng)建三個窗體及控件
選擇“工程”菜單的“添加窗體”命令,添加兩個窗體,,窗體的名稱按添加順序分別為Form2和Form3,,這樣工程就由三個窗體組成。
(1) 窗體1:該窗體為主窗體,,名稱為Form1,,是用來供用戶確認和調用其他相應的窗體。該窗體上有三個標簽,,兩個文本框,,兩個按鈕,文本框Text1用于輸入用戶名稱,,文本框Text2用于輸入口令,。
(2) 窗體2:該窗體名稱為Form2,該窗體上有一個標簽,,一個文本框,,一個按鈕,文本框采用多行顯示,,具有垂直滾動條,,鎖定文本框不能編輯。 (3) 窗體3:該窗體名稱為Form3,,為退出窗體,,窗體上有一個圖片框,一個標簽,。
2.編寫事件代碼
在窗體1的文本框輸入用戶名稱和口令,,單擊“確定”按鈕,當用戶名稱為“Admin”且用戶口令為“123456”時顯示窗體2,,否則顯示窗體3,。單擊“退出”按鈕結束程序,,其程序代碼為:
Private Sub Command1_Click() '單擊確定按鈕
If Text1.Text = "Admin" And Text2.Text = "123456" Then
Form2.Show
Else
Form3.Show
End If
Form1.Hide
End Sub
Private Sub Command2_Click() '單擊退出按鈕
End
End Sub
在Form2中單擊“返回”按鈕,卸載Form2并顯示Form1.其程序代碼為:
Private Sub Command1_Click() '單擊返回按鈕
Form1.Show
Unload Me
End Sub
From3中顯示圖片,,在Form3中單擊窗體,,卸載Form3,并退出程序,,其程序代碼為:
Private Sub Form_Click() '單擊窗體
Unload Me
End
End Sub
10.1.3 多重窗體程序的執(zhí)行和存取
1.設置啟動窗體
設置啟動窗體的步驟為:
① 選擇“工程”菜單的“工程1屬性”命令,;
② 在彈出的對話框中選擇“通用”選項卡;
③ 單擊“啟動對象”列表框的下拉箭頭,,從中選擇“Form1”,,如圖10-5所示;
④ 單擊“確定”按鈕,,完成啟動窗體設置,。
2.多重窗體程序的保存
(1)保存多重窗體程序
① 在工程資源管理器中選擇要保存的窗體,然后執(zhí)行“文件”菜單中的“另存為”目
錄,,打開“文件另存為”對話框,。用該對話框把窗體保存到磁盤文件中。在工程管理器窗口中列出的每個窗體或標準模塊,,都必須分別存入磁盤,。窗體文件的擴展名為.frm,標準模塊文件的擴展名為.bas,。
② 執(zhí)行“文件”菜單中的“工程另存為”命令,,打開“工程另存為”對話框,把整個工程以.vbp為擴展名存入磁盤,。
(2)裝入多重窗體程序
選擇執(zhí)行“文件”菜單中的“打開工程”命令,,將顯示“打開工程”對話框,或“現存”選項卡,,在對話框中輸入或選擇工程文件(.vbp)名,,然后單擊“打開”按鈕,即可把屬于該工程的所有文件(包括.frm和.bas文件)裝入內存,。
(3)多窗體程序的編譯
多窗體程序可以編譯生成可執(zhí)行文件(.exe),,通過“文件”菜單中的“生成工程1.exe”命令生成可執(zhí)行文件。
10.2 Visual Basic工程結構
Visual Basic程序中主要有3種模塊,,即窗體模塊、標準模塊和類模塊,。
10.2.1 標準模塊與窗體模塊
1. 標準模塊
標準模塊也常稱為全局模塊,,由全局變量聲明、模塊層聲明和通用過程等幾部分組成,。
l 其中全局變量聲明放在標準模塊的首部,,全局變量聲明總是在啟動時執(zhí)行,。
l 模塊層聲明包括在標準模塊中使用的變量和常量,
l 在標準模塊中,,全局變量用Public聲明,,模塊層變量用Dim或Private聲明。
l 標準模塊通過“工程”菜單中的“添加模塊”命令,,來建立新模塊或打開現存模塊,。
2. 窗體模塊
窗體模塊包括3部分內容,即聲明部分,、通用過程部分和事件過程部分,。
l 在聲明部分中,用Dim語句聲明窗體模塊所需要的變量,,其工作域為整個窗體模塊,,包括該模塊內的每個過程。
l 聲明部分執(zhí)行之后,,Visual Basic在事件過程部分查找啟動窗體中的Sub Form_Load過程,,它是在把窗體裝入內存時所發(fā)生的事件。如果存在這個過程,,則自動執(zhí)行它,。
l 窗體模塊中的通用過程可以被本模塊或其他窗體模塊中的事件過程調用。
l 在窗體模塊中,,可以調用標準模塊中的過程,,也可以調用其他窗體模塊中的過程,被調用的過程必須用Public定義為公用過程,。
l 標準模塊中的過程可以直接調用(當過程名惟一時),,而如果要調用其他窗體模塊中的過程,則必須加上過程所在的窗體的名字,,其格式為:窗體名稱.過程名稱 (參數表)
10.2.2 Sub Main過程
在一個含有多個窗體或多個工程的應用程序中,,有時候需要在顯示多個窗體之前對一些條件進行初始化,這就需要在啟動程序時執(zhí)行一個特定的過程,。在Visual Basic中,,這樣的過程稱為啟動過程,并命名為Sub Main,。
l Sub Main過程在標準模塊窗口中建立,。
l Sub Main過程通常是作為啟動過程編寫的,Visual Basic并不自動把它作為啟動過程,,必須通過與設置啟動窗體類似的方法把它指定為啟動過程:
(1) 執(zhí)行“工程”菜單中的“工程屬性”命令,,在打開的對話框中單擊“通用”選項卡,
(2) 選擇Sub Main,。
(3) 單擊“確定”按鈕,,即可把Sub Main指定為啟動過程,。
l 如果把Sub Main指定為啟動過程,則可以在運行程序時自動執(zhí)行,。由于Sub Main過程可先于窗體模塊執(zhí)行,,因此常用來初始化條件。
Sub Main()
初始化
…
Form1.show
End Sub
該過程先進行所需要的初始化處理,,然后顯示一個窗體,。
Visual Basic應用程序結構
一個完整的Visual Basic應用程序由工程文件(擴展名為.vbp)組成,在工程中含有標準模塊(擴展名為.bas),、窗體模塊(擴展名為.frm)和類模塊(擴展名為.cls),。
10.3 閑置循環(huán)與DoEvents語句
1. 閑置循環(huán)
所謂閑置循環(huán),就是當應用程序處于閑置狀態(tài)時,,用一個循環(huán)來執(zhí)行其他操作,。
2 . DoEvents語句
DoEvents語句,當執(zhí)行閑置循環(huán)時,,可以用它把控制權交給周圍環(huán)境使用,,然后回到原來程序繼續(xù)執(zhí)行。
l DoEvents既可以作為語句,,也可以作為函數使用,一般格式為:
〔窗體號=〕DoEvents[()]
當作為函數使用時,,DoEvents返回當前裝入Visual Basic應用程序工作區(qū)的窗體號
當作為語句使用時,,DoEvents可省略前、后的選擇項,。
例如:Private Sub Command1_Click()
For I&=1 to 2000000000
X=DoEvents
For j=1 to 1000
Next j
Cls
Print I&
Next I&
End Sub
單擊命令按鈕,,將在窗體左上角顯示循環(huán)控制變量(I&)的值,由于加了延時循環(huán),,該程序的運行需要很長的時間,。加入“X=DoEvents”后,可以在執(zhí)行循環(huán)的過程中進行其他操作
l DoEvents給程序執(zhí)行帶來一定的方便,,但不能不分場合地使用。有時候,,應用程序的某些關鍵部分可能需要獨占計算機時間,以防止被鍵盤,、鼠標或其他程序中斷,在這種情況下,,不能使用DoEvents語句。
小結:
在Visual Basic應用程序設計中,,只有單一窗體的應用程序往往不能滿足需要,,特別是較復雜的應用程序,,都必須通過多重窗體(Multi-Form)來實現。在多重窗體程序中,,每個窗體可以有自己的界面和程序代碼,,分別完成不同的功能。利用多重窗體,,可以設計較復雜的多功能對話窗口,,從而取代如InputBox或MsgBox這樣的標準對話框。本講介紹了Visual Basic多重窗體程序設計及其環(huán)境應用的有關內容,。
作業(yè):
1、在多窗體程序中,,怎樣在各個窗體之間切換,?
2、多窗體程序與單窗體程序有什么區(qū)別,?它們在執(zhí)行時又有什么區(qū)別,?
3、怎樣保存和裝入多窗體程序,?怎樣指定啟動窗體,?
4、Visual Basic程序由哪幾類模塊組成,?在標準模塊中用Dim語句定義的變量是否是全局變量,?
5、什么是閑置循環(huán),?DoEvents語句有何作用,?
6、設計一個“學校情況簡介”程序,,該程序由8個窗體構成,,其中一個窗體為封面窗體,一個窗體為列表窗體,,其余6個窗體分別用來顯示學校6個部門或系的介紹內容,。程序運行后,先顯示封面窗體,,接著顯示列表窗體,,在該窗體中列出所要查看的部門目錄(6個),,雙擊某個目錄,在另一個窗體的文本框中顯示該部門的簡介內容(內容自擬),,每一個部門用一個窗體顯示,。
|