二、多窗體程序設計
當應用程序功能較強和分類較多,程序和用戶的交互頻繁時,如果只用一個窗體和用戶進行交互,一方面難以進行合乎美觀原則的設計,另一方面分類工作很難,設計出來的界面不符合友好原則。這時使用多重窗體程序設計,增強程序界面的友好性。
多窗體指的應用中有多個窗體,它們之間沒有絕對的從屬關系。每個窗體的界面設計與單窗體的完全一樣,只是在設計之前應先建立窗體,這可以通過菜單“工程”/“添加窗體”命令實現。程序代碼是針對每個窗體編寫的,當然,應注意窗體之間存在的先后順序和相互調用的關系。所以,多重窗體實際上是單一窗體的集合,而單一窗體是多重窗體程序設計的基礎。
一般說來,多窗體的設計基本分成以下幾個步驟:
◆分析應用要求,將其功能劃分為不同的幾部分
◆分別創(chuàng)建各個窗體、模塊
◆在創(chuàng)建窗體時,除各窗體自身要完成的功能外,還要考慮窗體之間的調用關系
◆點擊[工程]/[屬性]菜單,在[啟動對象]中選擇應用運行時首先執(zhí)行的對象
◆運行應用程序,檢驗應用及各窗體的運行情況
1、多窗體程序設計常用的方法
在單窗體程序設計中,所有的操作都在一個窗體中完成,不需要在多個窗體中切換。而在多窗體程序中,需要打開、關閉、隱藏或顯示指定的窗體,這可以通過相應的語句和方法來實現。
在多窗體程序設計經常用到下面四種方法:Load,Show Hide和Unload.
(1)Load方法
它的語法結構如下:
Load [窗體名稱]
使用Load方法調用的窗體被存入內存,并不顯示出來,同時會產生一個Form_Load()事件。
例如:Load Form2 '將Form2窗體存入內存
(2)Show方法
它的語法結構如下:
[窗體名稱].Show
Show方法用來顯示被調用的窗體。Show方法兼有裝入和顯示兩種功能,也就是說,在執(zhí)行Show方法時,如果窗體不在內存中,則Show方法會自動的把窗體調入內存,然后再顯示出來。
例如: Load Form2
Form2.Show '將Form2存于內存,并顯示Form2窗體
(3)Hide方法
它的語法結構如下:
[窗體名稱].Hide
使用Hide方法會隱藏被調用的窗體,既不在屏幕上顯示,但仍在內存中(與Unload方法不同),被調用的窗體中的屬性等已經處于無效的狀態(tài)。
例如:
Form1.Hide
Form2.Show '將Form隱藏,并顯示Form2窗體
(4)Unload方法
它的語法結構如下:
Unload [窗體名稱]
使用Unload方法會清除內存中指定的窗體,與此同時,窗體中的變量和屬性等都會處于無效的狀態(tài),在移去窗體的同時會產生一個Form_QueryUnload()事件。
例如:Form1.Show
Unload Form2'顯示Form1窗體,從內存中移去Form2窗體。
2、一個多窗體程序設計示例
下面就以一個示例來說明如何運進多窗體的程序設計(見教材P283)。
(1)啟動新工程
1)設置屬性
首先啟動一個新的工程,屏幕出現一個空白的窗體,窗體的屬性設置如下:
屬性 設置
Name
Form1
Caption
Form1
BorderStyle
3-Fixed Dialog'窗體的大小不能夠在程序的運行過程中改變
MDIChild
False
StartUpPosition
2-CenterScreen'窗體在程序的運行過程中始終位于屏幕的中央
Moveable
False'在程序的運行過程中不能夠移動窗體
2)添加控件
在空白的窗體上添加如下控件:五個Label控件、四個TextBox控件和兩個CommandButton控件。
(2)添加窗體
選擇菜單“工程(Project)”/“添加窗體(add form)”命令,彈出對話框,在添加窗體的對話框中選擇"窗體"項,單擊[打開]按鈕,系統(tǒng)就會自動的向原有的工程中添加一個窗體。
1)添加控件
在新的窗體上放置一CommandButton控件,作用是在隱藏新增的窗體的同時顯示原有的窗體。
則窗體如下:
2)添加代碼
在"繼續(xù)"按鈕的Command1_Click()事件中添加下列代碼:
Private Sub Command1_Click()
Form2.Hide '隱藏窗體2
Form1.Show '顯示窗體1
End Sub
程序說明:在窗體Form2被顯示的過程中,單擊[繼續(xù)]按鈕,就會激活Command1_Click()事件,然后通過Form2.Hide 和Form2.Show兩條語句實現隱藏窗體和顯示窗體的功能。
(3)添加說明模塊
選擇菜單[工程]/[添加模塊],就會彈出對話框:
在模塊的聲明段中添加下列代碼:
Global a1 as Single
Global a2 as Single
Global a3 as Single
Global a3 as Single '定義四個全局變量,分別用來存儲第一季度,第二季度、第三季度和第四季度的銷售情況
(4)添加程序代碼
1)窗體Form1中的代碼如下:
Private Sub Command1_Click()
Form1.Hide
Form2.Show
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Text1_Change()
a1 = Val(Text1.Text)?。AL()函數用于將字符串轉化為數值型
End Sub
Private Sub Text2_Change()
a2 = Val(Text2.Text)
End Sub
Private Sub Text3_Change()
a3 = Val(Text3.Text)
當應用程序功能較強和分類較多,程序和用戶的交互頻繁時,如果只用一個窗體和用戶進行交互,一方面難以進行合乎美觀原則的設計,另一方面分類工作很難,設計出來的界面不符合友好原則。這時使用多重窗體程序設計,增強程序界面的友好性。
多窗體指的應用中有多個窗體,它們之間沒有絕對的從屬關系。每個窗體的界面設計與單窗體的完全一樣,只是在設計之前應先建立窗體,這可以通過菜單“工程”/“添加窗體”命令實現。程序代碼是針對每個窗體編寫的,當然,應注意窗體之間存在的先后順序和相互調用的關系。所以,多重窗體實際上是單一窗體的集合,而單一窗體是多重窗體程序設計的基礎。
一般說來,多窗體的設計基本分成以下幾個步驟:
◆分析應用要求,將其功能劃分為不同的幾部分
◆分別創(chuàng)建各個窗體、模塊
◆在創(chuàng)建窗體時,除各窗體自身要完成的功能外,還要考慮窗體之間的調用關系
◆點擊[工程]/[屬性]菜單,在[啟動對象]中選擇應用運行時首先執(zhí)行的對象
◆運行應用程序,檢驗應用及各窗體的運行情況
1、多窗體程序設計常用的方法
在單窗體程序設計中,所有的操作都在一個窗體中完成,不需要在多個窗體中切換。而在多窗體程序中,需要打開、關閉、隱藏或顯示指定的窗體,這可以通過相應的語句和方法來實現。
在多窗體程序設計經常用到下面四種方法:Load,Show Hide和Unload.
(1)Load方法
它的語法結構如下:
Load [窗體名稱]
使用Load方法調用的窗體被存入內存,并不顯示出來,同時會產生一個Form_Load()事件。
例如:Load Form2 '將Form2窗體存入內存
(2)Show方法
它的語法結構如下:
[窗體名稱].Show
Show方法用來顯示被調用的窗體。Show方法兼有裝入和顯示兩種功能,也就是說,在執(zhí)行Show方法時,如果窗體不在內存中,則Show方法會自動的把窗體調入內存,然后再顯示出來。
例如: Load Form2
Form2.Show '將Form2存于內存,并顯示Form2窗體
(3)Hide方法
它的語法結構如下:
[窗體名稱].Hide
使用Hide方法會隱藏被調用的窗體,既不在屏幕上顯示,但仍在內存中(與Unload方法不同),被調用的窗體中的屬性等已經處于無效的狀態(tài)。
例如:
Form1.Hide
Form2.Show '將Form隱藏,并顯示Form2窗體
(4)Unload方法
它的語法結構如下:
Unload [窗體名稱]
使用Unload方法會清除內存中指定的窗體,與此同時,窗體中的變量和屬性等都會處于無效的狀態(tài),在移去窗體的同時會產生一個Form_QueryUnload()事件。
例如:Form1.Show
Unload Form2'顯示Form1窗體,從內存中移去Form2窗體。
2、一個多窗體程序設計示例
下面就以一個示例來說明如何運進多窗體的程序設計(見教材P283)。
(1)啟動新工程
1)設置屬性
首先啟動一個新的工程,屏幕出現一個空白的窗體,窗體的屬性設置如下:
屬性 設置
Name
Form1
Caption
Form1
BorderStyle
3-Fixed Dialog'窗體的大小不能夠在程序的運行過程中改變
MDIChild
False
StartUpPosition
2-CenterScreen'窗體在程序的運行過程中始終位于屏幕的中央
Moveable
False'在程序的運行過程中不能夠移動窗體
2)添加控件
在空白的窗體上添加如下控件:五個Label控件、四個TextBox控件和兩個CommandButton控件。
(2)添加窗體
選擇菜單“工程(Project)”/“添加窗體(add form)”命令,彈出對話框,在添加窗體的對話框中選擇"窗體"項,單擊[打開]按鈕,系統(tǒng)就會自動的向原有的工程中添加一個窗體。
1)添加控件
在新的窗體上放置一CommandButton控件,作用是在隱藏新增的窗體的同時顯示原有的窗體。
則窗體如下:
2)添加代碼
在"繼續(xù)"按鈕的Command1_Click()事件中添加下列代碼:
Private Sub Command1_Click()
Form2.Hide '隱藏窗體2
Form1.Show '顯示窗體1
End Sub
程序說明:在窗體Form2被顯示的過程中,單擊[繼續(xù)]按鈕,就會激活Command1_Click()事件,然后通過Form2.Hide 和Form2.Show兩條語句實現隱藏窗體和顯示窗體的功能。
(3)添加說明模塊
選擇菜單[工程]/[添加模塊],就會彈出對話框:
在模塊的聲明段中添加下列代碼:
Global a1 as Single
Global a2 as Single
Global a3 as Single
Global a3 as Single '定義四個全局變量,分別用來存儲第一季度,第二季度、第三季度和第四季度的銷售情況
(4)添加程序代碼
1)窗體Form1中的代碼如下:
Private Sub Command1_Click()
Form1.Hide
Form2.Show
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Text1_Change()
a1 = Val(Text1.Text)?。AL()函數用于將字符串轉化為數值型
End Sub
Private Sub Text2_Change()
a2 = Val(Text2.Text)
End Sub
Private Sub Text3_Change()
a3 = Val(Text3.Text)

