《Visual Basic程序設(shè)計(jì)》重點(diǎn)輔導(dǎo)
第一章 VB語(yǔ)言概述
一、 基本要求
1.掌握VB程序設(shè)計(jì)的特點(diǎn)。
2.理解可視化設(shè)計(jì)和事件驅(qū)動(dòng)編程的概念。
二、問題解答
1、VB程序設(shè)計(jì)的特點(diǎn)是什么?
VB是Windows環(huán)境下的應(yīng)用程序開發(fā)工具,其最突出的兩個(gè)特點(diǎn)是:可視化編程和事件驅(qū)動(dòng)。
VB的另一個(gè)顯著特點(diǎn)是交互式,所謂交互式是指在編寫代碼過程中出現(xiàn)語(yǔ)法錯(cuò)誤時(shí)系統(tǒng)會(huì)立即獲得通知,并在開發(fā)過程中可運(yùn)行程序進(jìn)行調(diào)試。
2.如何理解可視化編程和事件驅(qū)動(dòng)的概念。
(1)可視化編程
傳統(tǒng)的編程方法使用的是面向過程、按順序進(jìn)行的機(jī)制,其缺點(diǎn)是程序員始終要關(guān)心什么時(shí)候發(fā)生什么事情,應(yīng)用程序的界面都需要程序員編寫語(yǔ)句來實(shí)現(xiàn),對(duì)于圖形界面的應(yīng)用程序,只有在程序運(yùn)行時(shí)才能看到效果,一旦不滿意,還需要修改程序,因而使得開發(fā)工作非常煩瑣。用VB進(jìn)行應(yīng)用程序開發(fā)主要有兩部分工作:即設(shè)計(jì)界面和編寫代碼。在開發(fā)過程中所看到的界面,與程序運(yùn)行時(shí)的界面基本相同,同時(shí)VB還向程序員提供了若干界面設(shè)計(jì)所需要的對(duì)象(稱為控件),在設(shè)計(jì)界面時(shí),只需將所需要的控件放到窗口的指定位置即可,整個(gè)界面設(shè)計(jì)過程基本不需要編寫代碼。概括地說可視化編程就是程序員在開發(fā)過程中能看到界面的實(shí)際效果。
(2)事件驅(qū)動(dòng)
用VB開發(fā)的應(yīng)用程序,代碼不是按照預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同的事件時(shí)執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā),如單擊鼠標(biāo)、鍵盤輸入等事件。也可以由來自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序。概括地說事件驅(qū)動(dòng)是指應(yīng)用程序沒有預(yù)定的執(zhí)行路徑,而是由程序運(yùn)行過程中的事件決定。
第二章 VB6.0 集成開發(fā)環(huán)境
一、基本要求
1.掌握窗體、工程窗口、屬性窗口、代碼編輯器窗口的功能與使用。
2.掌握VB編程的基本步驟,會(huì)設(shè)計(jì)簡(jiǎn)單的VB程序。
3.理解對(duì)象、屬性、事件和方法的概念及其之間的關(guān)系。
4.了解工具箱中各種控件的功能與使用。
二、問題解答
1.VB可視化編程的一般步驟是什么?
一般步驟是:
(1)設(shè)計(jì)界面
先建立窗體,再利用控件在窗體上創(chuàng)建各種對(duì)象。
(2)設(shè)置屬性
設(shè)置窗體或控件等對(duì)象的屬性。
(3)編寫代碼
2.什么是對(duì)象、屬性、事件和方法?
(1)對(duì)象:從廣義上來說,對(duì)象是客觀事物的一個(gè)實(shí)體。在可視化編程語(yǔ)言中,對(duì)象分為兩類,一類由系統(tǒng)設(shè)計(jì),可以直接使用或?qū)ζ溥M(jìn)行操作,如工具箱中的控件、窗體和菜單等,另一類由用戶定義。
(2)屬性:屬性是一個(gè)對(duì)象的特性,不同的對(duì)象有不同的屬性。對(duì)象常見的屬性有標(biāo)題(Caption)、 名稱(Name)、顏色(Color)、字體(Font) 、是否可見(Visible)等。通過修改對(duì)象的屬性,可以改變對(duì)象的外觀和功能。
(3)事件:所謂事件就是發(fā)生在對(duì)象上的事情。在VB中,系統(tǒng)為每個(gè)對(duì)象預(yù)先定義好了一系列的事件。例如單擊(Click) 事件、雙擊(Dbclick)事件、裝入(Load)事件、改變(Change)事件、鼠標(biāo)移動(dòng)(MouseMove)事件、獲取焦點(diǎn)(GotFocus)事件等。對(duì)象的事件是固定的,用戶不能建立新的事件。當(dāng)事件由用戶觸發(fā)(如單擊)或由系統(tǒng)觸發(fā)(如裝入時(shí)),對(duì)象就會(huì)對(duì)該事件作出響應(yīng),響應(yīng)某個(gè)事件后所執(zhí)行的程序代碼就是事件過程。
例如:命令按紐Command1的Click(單擊)事件過程為:
Private Sub Command1_Click()
Form1.BackColor=vbRed
End Sub
過程中的代碼Form1.BackColor=vbRed表示將窗體的背景顏色設(shè)置成紅色。運(yùn)行時(shí),用鼠標(biāo)單擊命令按紐Command1,就會(huì)執(zhí)行該事件過程,將窗體的背景顏色設(shè)置成紅色。
(4)方法:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,引入了稱為方法(Method)的特殊過程和函數(shù)供用戶直接調(diào)用。如對(duì)象打?。≒rint)方法、顯示窗體(Show)方法、清除(Cls)方法、移動(dòng)(Move)方法等。用戶可直接調(diào)用,不能進(jìn)行修改。
例如:FirstForm.print"歡迎使用Visual Basic"
該語(yǔ)句使用.print方法在名稱為FirstForm的窗體上顯示字符串"歡迎使用Visual Basic"。
3.對(duì)象、事件和方法三者之間的關(guān)系如何?
在VB編程中,完成某種功能可通過觸發(fā)對(duì)象事件和調(diào)用對(duì)象方法,而觸發(fā)事件和調(diào)用對(duì)象方法都必須基于某個(gè)對(duì)象。觸發(fā)某個(gè)事件實(shí)際上就是執(zhí)行一個(gè)事件過程代碼段,在該代碼段中又可以隨意調(diào)用對(duì)象方法,而調(diào)用對(duì)象方法不可能觸發(fā)某個(gè)事件。
例如:在窗體上添加一個(gè)命令按紐,編寫一個(gè)響應(yīng)Command1的單擊(Click)事件過程如下:
Private Sub Command1_Click()
Command1.Caption="顯示窗體"
Form2.Show
End Sub
上述代碼段表明單擊對(duì)象按鈕Command1觸發(fā)單擊事件,即執(zhí)行上述代碼。在執(zhí)行上述事件過程中又調(diào)用了顯示窗體(Form2)的方法。
4.屬性和方法有何區(qū)別和聯(lián)系?試舉例說明。
對(duì)象的屬性是描述對(duì)象的一組特征。如設(shè)置對(duì)象的名稱、標(biāo)題、顏色、大小等,有的可直接在設(shè)計(jì)界面時(shí)通過屬性窗口進(jìn)行設(shè)置,有的可以在事件過程或通用過程代碼中進(jìn)行設(shè)置。對(duì)象的方法是在對(duì)象上實(shí)施某種操作的功能,不能在設(shè)計(jì)界面時(shí)調(diào)用對(duì)象方法,一般在過程代碼中可隨意調(diào)用,根據(jù)需要還可以添加適當(dāng)?shù)膮?shù)。設(shè)置對(duì)象屬性和調(diào)用對(duì)象方法均可在代碼設(shè)計(jì)中進(jìn)行,其一般格式為:
對(duì)象名.屬性名=屬性值 (設(shè)置對(duì)象屬性)
對(duì)象名.方法名 (調(diào)用對(duì)象方法)
5.VB6.0的三種工作模式和功能是什么?
VB6.0的三種工作模式和功能是設(shè)計(jì)模式、運(yùn)行模式和中斷模式。
設(shè)計(jì)模式:可以進(jìn)行用戶界面的設(shè)計(jì)和代碼的編寫。
運(yùn)行模式:運(yùn)行應(yīng)用程序,此時(shí)不可以編輯代碼,也不可以編輯界面。
中斷模式:應(yīng)用程序運(yùn)行暫時(shí)中斷,此時(shí)可以編寫代碼,但不可以編輯界面。
第三章 程序設(shè)計(jì)基礎(chǔ)
一、 基本要求
1.了解VB中定義的13種標(biāo)準(zhǔn)數(shù)據(jù)類型。
2.掌握變量、常量的概念及其數(shù)據(jù)類型。掌握變量的命名規(guī)則,理解變量聲明的含義。
3.掌握數(shù)組(包括靜態(tài)數(shù)組與動(dòng)態(tài)數(shù)組)的概念與聲明。
4.理解記錄類型(用戶自定義類型)的定義。
5.掌握各種運(yùn)算符與表達(dá)式的含義和應(yīng)用,掌握運(yùn)算符的優(yōu)先級(jí)。
6.掌握賦值語(yǔ)句、注釋語(yǔ)句、條件分之語(yǔ)句(If Then、If Then Else、If Then ElseIf、Select Case)、循環(huán)語(yǔ)句(Do…Loop、For…Next、For Each…Next、While…Wend)的含義及書寫格式。
7.理解常見標(biāo)準(zhǔn)函數(shù)(交互式函數(shù)、類型轉(zhuǎn)換函數(shù)、數(shù)學(xué)函數(shù)、日期和時(shí)間函數(shù)、字符串函數(shù)、目錄和文件函數(shù))的用途。
二、問題解答
1.VB定義了哪幾種數(shù)據(jù)類型?變量有哪幾種數(shù)據(jù)類型?常量有哪幾種數(shù)據(jù)類型?
解答:數(shù)據(jù)是程序的必要組成部分,也是程序處理的對(duì)象。在各種程序設(shè)計(jì)語(yǔ)言中,數(shù)據(jù)類型的規(guī)定和處理方法是各不相同的。Visual Basic不但提供了系統(tǒng)定義的數(shù)據(jù)類型,而且還允許用戶定義自己的數(shù)據(jù)類型
在VB6.0定義了13種數(shù)據(jù)類型,它們是整型、長(zhǎng)整型、單精度浮點(diǎn)型、雙精度浮點(diǎn)型、貨幣型、字節(jié)型、變長(zhǎng)字符串、定長(zhǎng)字符串、布爾型、日期型、對(duì)象型、可變類型(數(shù)值)、可變類型(字符)。
變量是指在程序運(yùn)行過程中其值可以改變的量,變量的數(shù)據(jù)類型如下:

常量是指在程序運(yùn)行期間其值不發(fā)生變化的量。常量的數(shù)據(jù)類型有:字符串常量、數(shù)值型常量、布爾型常量、日期型常量。
在VB中有兩種形式的常量,即直接常量和符號(hào)常量。符號(hào)常量又可分為系統(tǒng)內(nèi)部常量和自定義常量。
直接常量是指在程序代碼中,以直接明顯的形式給出的數(shù),根據(jù)常量的數(shù)據(jù)類型分,有上述四種數(shù)據(jù)類型的常量。例如:
"歡迎使用Visual Basic" '字符串常量
12345 '數(shù)值型常量
True '布爾型常量
#11/10/2002# '日期型常量
系統(tǒng)內(nèi)部常量是應(yīng)用程序和控件提供的,這些常量的定義可以從"對(duì)象瀏覽器"中獲得。如VbBlue所表示的顏色值為&HFF0000, 描述為藍(lán)色。
自定義常量是為方便用戶開發(fā)而引入的符號(hào)常量。自定義常量使用關(guān)鍵字Const進(jìn)行聲明。例如:
Const Pi = 3.14159 ¢聲明符號(hào)常量Pi為3.14159 ,單精度型。
2.變量的命名規(guī)則是什么?
解答:VB變量的命名規(guī)則如下:
第一個(gè)字符必須是字母。
長(zhǎng)度不超過255個(gè)字符。
不可以包含小數(shù)點(diǎn)或者內(nèi)嵌的類型聲明字符。
不能使用關(guān)鍵字。
不能與過程名或符號(hào)常量同名。
3.如何聲明變量?
解答:
(1)隱式聲明
變量可以不經(jīng)聲明而直接使用,此時(shí)該變量為可變類型變量。在可變類型變量中,可以存放任何類型的數(shù)據(jù),如數(shù)值、字符串、日期和時(shí)間。雖然這種方法很方便,但常會(huì)導(dǎo)致難以查找的錯(cuò)誤。所以一般采用顯示聲明變量的方法。
(2)顯示聲明
格式:Dim|Private|Static|Public<變量名> [As <類型>]
Dim:在窗體模塊、標(biāo)準(zhǔn)模塊或過程中聲明變量。
Private:在窗體模塊或過程中聲明變量,使變量?jī)H在該模塊或過程中有效。
Static:在過程中定義靜態(tài)變量,即使該過程結(jié)束,也仍然保留變量的值。
Public:在標(biāo)準(zhǔn)模塊中聲明全局變量,使變量在整個(gè)應(yīng)用程序中有效。
如: Dim Sum As Long ¢聲明變量Sum為長(zhǎng)整形
為了保證所有變量都能得到聲明,可以使用VB的強(qiáng)制聲明功能,這樣,只要在運(yùn)行時(shí)遇到一個(gè)未經(jīng)明確聲明的變量名,VB就會(huì)發(fā)出錯(cuò)誤警告。要強(qiáng)制顯示聲明變量,可在窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入語(yǔ)句:Option Explicit
應(yīng)當(dāng)注意的是:Option Explicit語(yǔ)句的作用范圍僅限于語(yǔ)句所在模塊,所以對(duì)每個(gè)需要
強(qiáng)制顯示變量聲明的窗體模塊、標(biāo)準(zhǔn)模塊及類模塊。必須將Option Explicit語(yǔ)句放在這些模塊的聲明段中。
全局變量是可以在工程中的所有程序模塊使用的變量,使用關(guān)鍵字Public聲明的變量可以被工程中的任一窗體、任一模塊中的任一過程或函數(shù)使用。全局變量的聲明只能位于標(biāo)準(zhǔn)模塊的聲明部分。
4.?dāng)?shù)組、靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組的聲明。
(1)數(shù)組是有序數(shù)據(jù)的集合。數(shù)組的定義語(yǔ)法如下:
Dim 數(shù)組名 ([[下標(biāo)下界To]下標(biāo)上界])[As數(shù)據(jù)類型]
(2)靜態(tài)數(shù)組是指數(shù)組元素的個(gè)數(shù)是固定不變的,即它們占用的內(nèi)存空間大小是固定不變的。
(3)動(dòng)態(tài)數(shù)組是指在程序執(zhí)行過程中數(shù)組元素的個(gè)數(shù)可以改變的數(shù)組。
5.在VB中有幾類運(yùn)算符和表達(dá)式?
運(yùn)算是用來對(duì)運(yùn)算對(duì)象進(jìn)行各種運(yùn)算的的操作符號(hào),而表達(dá)式是由多個(gè)運(yùn)算對(duì)象和運(yùn)算符組合在一起的合法算式。在VB中有6類運(yùn)算符和表達(dá)式:
算術(shù)運(yùn)算符和算術(shù)表達(dá)式
字符串運(yùn)算符(連接運(yùn)算符)和字符串表達(dá)式
關(guān)系運(yùn)算符和關(guān)系表達(dá)式
布爾運(yùn)算符(邏輯運(yùn)算符)和布爾表達(dá)式
日期運(yùn)算符和日期表達(dá)式
對(duì)象運(yùn)算符和對(duì)象表達(dá)式
用的最多的主要是前四種。
(1)算術(shù)運(yùn)算符和算術(shù)表達(dá)式
優(yōu)先級(jí)
|
算術(shù)運(yùn)算符
|
運(yùn)算
|
算術(shù)表達(dá)式例子
|
結(jié)果
|
1
|
^
|
乘方
|
3^2
|
9
|
2
|
-
|
取負(fù)
|
- 4
|
-4
|
3
|
*
|
乘法
|
3*6
|
18
|
3
|
/
|
浮點(diǎn)除法
|
10/3
|
3.33333333333
|
4
|
\
|
整數(shù)除法
|
10\3
|
3
|
5
|
Mod
|
取模
|
10Mod3
|
1
|
6
|
+
|
加法
|
3+4
|
7
|
6
|
-
|
減法
|
3-4
|
-1
|
(2) 字符串運(yùn)算符(連接運(yùn)算符)和字符串表達(dá)式
字符串運(yùn)算符有兩個(gè):"&"、"+",其作用都是將兩個(gè)字符串連接起來,合并成一個(gè)新的字符串。
"&"會(huì)自動(dòng)將非字符串類型的數(shù)據(jù)轉(zhuǎn)換成字符串后再進(jìn)行連接,而"+"則不能自動(dòng)轉(zhuǎn)換。例如:
"Hello"&"World" 結(jié)果為" Hello World"
"Check"&123 結(jié)果為" Check123"
"Check"+123 錯(cuò)誤
(3)關(guān)系運(yùn)算符和關(guān)系表達(dá)式
關(guān)系運(yùn)算符用于對(duì)兩個(gè)表達(dá)式的值進(jìn)行比較,比較的結(jié)果為布爾值True (真)或False(假)。
運(yùn)算符
|
運(yùn)算
|
關(guān)系表達(dá)式例子
|
結(jié)果
|
=
|
等于
|
2=3
|
False
|
<>或><
|
不等于
|
2<>3
|
True
|
>
|
大于
|
2>3
|
False
|
<
|
小于
|
2<3
|
True
|
>=
|
大于等于
|
2>=3
|
False
|
<=
|
小于等于
|
2<=3
|
False
|
(4)布爾運(yùn)算符(邏輯運(yùn)算符)和布爾表達(dá)式
布爾運(yùn)算符兩邊的表達(dá)式要求為布爾值。布爾表達(dá)式的結(jié)果值仍為布爾值。
布爾運(yùn)算符
優(yōu)先級(jí)
|
運(yùn)算符
|
運(yùn)算
|
說明
|
例子
|
結(jié)果
|
1
|
Not
|
非
|
當(dāng)表達(dá)式為假時(shí),結(jié)果為真。
|
Not(3>8)
|
True
|
2
|
And
|
與
|
當(dāng)兩個(gè)表達(dá)式均為真時(shí),結(jié)果才為真,否則為假。
|
(3>8)And(5<6)
|
False
|
3
|
Or
|
或
|
當(dāng)兩個(gè)表達(dá)式均為假時(shí),結(jié)果才為假,否則為真。
|
(3>8)Or(5<6)
|
True
|
4
|
Xor
|
異或
|
當(dāng)兩個(gè)表達(dá)式同時(shí)為真或同時(shí)為假時(shí),結(jié)果為假,否則為真。
|
(3<8)Xor(5<6) (3>8)Xor(5<6)
|
False True
|
5
|
Eqv
|
等階
|
當(dāng)兩個(gè)表達(dá)式同時(shí)為真或同時(shí)為假時(shí),結(jié)果為真,否則為假。
|
(3<8)Xor(5<6) (3>8)Xor(5<6)
|
True False
|
6
|
Imp
|
蘊(yùn)含
|
當(dāng)?shù)谝粋€(gè)表達(dá)式為真,且第二個(gè)表達(dá)式為假時(shí),結(jié)果為假,否則為真。
|
(3<8) Imp(5>6)
|
False
|
(5)日期型表達(dá)式
日期型表達(dá)式由算術(shù)運(yùn)算符"+"、"-"、算術(shù)表達(dá)式、日期型常量、內(nèi)存變量和函數(shù)組成。日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),它們之間只能進(jìn)行"+"、"-"運(yùn)算。有下面三種情況:
兩個(gè)日期型數(shù)據(jù)相減,結(jié)果是一個(gè)數(shù)值型數(shù)據(jù)(兩個(gè)日期相差的天數(shù))。例如:
#12/19/1999#-#11/16/1999# '結(jié)果為數(shù)值型數(shù)據(jù):33
一個(gè)表示天數(shù)的數(shù)值型數(shù)據(jù)可加到日期型數(shù)據(jù)中或從日期型數(shù)據(jù)中減掉,其結(jié)果仍然為一日期型數(shù)據(jù)。
6.運(yùn)算符的優(yōu)先級(jí)。
解答:數(shù)值運(yùn)算符和字符串運(yùn)算符®關(guān)系運(yùn)算符®布爾運(yùn)算符
例如:設(shè)a=3,b=5,c=-1,d=7,則以下表達(dá)式按標(biāo)注①~⑩的順序進(jìn)行運(yùn)算。

第四章 窗體和基本輸入、輸出
一、 基本要求
1.掌握Print方法和與Print方法有關(guān)的Tab函數(shù)和Spc函數(shù),InputBox函數(shù)、MsgBox函數(shù)和語(yǔ)句的使用方法。
2.理解函數(shù)調(diào)用和Format函數(shù)。
二、問題解答
1.如何用 Print方法輸出數(shù)據(jù)?
Print方法用于在窗體、圖片框、打印機(jī)和立即窗口等對(duì)象上輸出數(shù)據(jù)。
Print方法的格式為:
[對(duì)象] .Print expressionlit
對(duì)象可以是窗體、圖片框、打印機(jī)等或立即窗口,如果省略"對(duì)象名",則在當(dāng)前窗體上輸出。
例如:
Picture1.print"Visual Basic" '在圖片框Picture1中顯示:"Visual Basic"
Print"Visual Basic" '在當(dāng)前窗體中顯示:"Visual Basic"
Debug. print"Visual Basic" '在立即窗口中顯示:"Visual Basic"
Expressionlit可以是算術(shù)表達(dá)式、字符串表達(dá)式、關(guān)系表達(dá)式或布爾表達(dá)式,多個(gè)表達(dá)式之間的分隔符為逗號(hào)或分號(hào)。
Print方法的特點(diǎn)
(1)Print方法具有計(jì)算和輸出雙重功能,對(duì)于表達(dá)式先計(jì)算后顯示。例如:
Print"aa"&"bb";-5*6;Not2<=3 '顯示:aabb-30False
(2) Print方法有兩種顯示格式:分區(qū)格式和緊湊格式。
當(dāng)各表達(dá)式之間用逗號(hào)作為分隔符時(shí),則按分區(qū)格式顯示數(shù)據(jù)項(xiàng),以14個(gè)字符位置為單位把一個(gè)輸出行分成若干區(qū)段,每個(gè)區(qū)段輸出一個(gè)表達(dá)式的值。當(dāng)各表達(dá)式之間用分號(hào)作為分隔符時(shí),則按緊湊格式輸出數(shù)據(jù),后一項(xiàng)緊跟前一項(xiàng)輸出,但要在每個(gè)數(shù)值后面增加一個(gè)空格,如果數(shù)值為正值,將把正號(hào)顯示為空格。例如:
Private Sub Form_Activate()
Print "12345678901234567890"
Print "2+4="; 2 + 4
Print "2-4=", 2 - 4
End Sub
輸出結(jié)果:
12345678901234567890
2+4= 6
2-4= -2
(3)一般情況下,每執(zhí)行一次Print方法都要自動(dòng)換行,即每次執(zhí)行Print時(shí),都會(huì)在新的一行上輸出數(shù)據(jù)。如果要在同一行上輸出數(shù)據(jù),則可以在末尾加上分號(hào)或逗號(hào)。當(dāng)使用分號(hào)時(shí),下一個(gè)Print輸出的內(nèi)容將緊跟在當(dāng)前Print所輸出的信息后面;如果使用逗號(hào),則在同一行上跳到下一個(gè)顯示區(qū)段顯示下一個(gè)Print所輸出的內(nèi)容。例如:
Private Sub Form_Activate()
Print "12345678901234567890"
Print "2+4="; 2 + 4,
Print "2-4=";
Print 2 - 4
End Sub
輸出結(jié)果:
12345678901234567890
2+4=6 2-4=-2
(4)如果Print后不用任何項(xiàng),則輸出一個(gè)空行,或者取消前面Print末尾的逗號(hào)或分號(hào)的作用。例如:
Private Sub Form_Activate()
Print "12345678901234567890"
Print '產(chǎn)生空行
Print "2+4="; 2 + 4,
Print '取消上面一句末尾逗號(hào)的作用,使下一個(gè)Print在新的一行輸出
Print "2-4=";
Print 2 - 4
End Sub
輸出結(jié)果:
12345678901234567890
2+4= 6
2-4=-2
(5) Print方法在Form-Load事件過程中不起作用。若要在Form-Load事件中顯示數(shù)據(jù),必須使用Show方法或者把AutoRedraw屬性設(shè)置為True。
前面的例子可改為:
Private Sub Form_Load()
Form1.Show
Print "12345678901234567890"
Print "2+4="; 2 + 4,
Print "2-4=";
Print 2 - 4
End Sub
輸出結(jié)果:
12345678901234567890
2+4=6 2-4=-2
2.與Print方法有關(guān)的函數(shù)
(1)Tab函數(shù)
格式:Tab(n)
表示在指定的第n個(gè)位置上輸出數(shù)據(jù)。
例如:
Private Sub Form_Activate()
Print "12345678901234567890"
Print "Hello"; Tab(10); "World" '第二個(gè)輸出項(xiàng)在第10列輸出
Print "Hello"; Tab; "World" 'Tab函數(shù)無參數(shù),第二個(gè)在第二個(gè)打印區(qū)列輸出
Print "Hello"; Tab(4); "World" 'n小于當(dāng)前位置,第二項(xiàng)在下一行輸出
Print Tab(-5); "Hello" 'n小于1,在第一列輸出
End Sub
輸出結(jié)果:
12345678901234567890
Hello World
Hello World
Hello
World
Hello
(2)Spc函數(shù)
格式:Spc (n)
功能;跳過n個(gè)空格
例如:
Print "Hello"; Spc (4); "World"
輸出結(jié)果:Hello World
3.InputBox函數(shù)
InputBox函數(shù)顯示一個(gè)能接受用戶輸入的對(duì)話框,等待用戶輸入數(shù)據(jù),并返回用戶在對(duì)話框中輸入的信息。
4.MsgBox函數(shù)
MsgBox函數(shù)提供的是輸出對(duì)話框,顯示"錯(cuò)誤"、"指示"、"警告"之類的簡(jiǎn)短信息以及"確定"、"取消"等按鈕。
5. Format函數(shù)
Format函數(shù)可以使數(shù)值、日期或字符串按指定的格式輸出。
第五章 常用控件
一、 基本要求
1.掌握標(biāo)簽, 文本框, 命令按鈕, 單選按鈕, 復(fù)選框, 列表框、滾動(dòng)條、 圖片框、框架的使用方法,能夠利用這些控件通過設(shè)置其屬性在窗體上設(shè)計(jì)應(yīng)用程序界面。
2.理解對(duì)話框、組合框、計(jì)時(shí)器、Image控件的基本用法。
二、各種控件的屬性
1.標(biāo)簽(Label)控件
標(biāo)簽(Label)用于顯示用戶不能編輯、修改的文本。主要用來顯示提示信息,可以用作標(biāo)題、欄目或輸入輸出區(qū)域的標(biāo)識(shí),也可作為結(jié)果信息輸出區(qū)域,常與Text控件一起使用。其主要屬性為:
標(biāo)簽控件的屬性
屬性
|
說明
|
Name
|
用于標(biāo)識(shí)窗體、控件的名稱。每一個(gè)控件均有該屬性,以后不再重復(fù)。
|
Caption
|
標(biāo)簽的標(biāo)題,缺省情況下標(biāo)簽控件中唯一可見的部分。
|
BorderStyle
|
用于設(shè)置標(biāo)簽的加框形式,0-標(biāo)簽不帶邊框,1-帶一個(gè)立體邊框。
|
BackColor
|
設(shè)置標(biāo)簽的背景色。
|
BackStyle
|
設(shè)置標(biāo)簽的背景模式,1-標(biāo)簽不透明,0-標(biāo)簽透明。
|
ForeColor
|
設(shè)置Caption的顏色。
|
Font
|
設(shè)置Caption的字體。
|
Alignment
|
設(shè)置Caption的排列方式,0-左對(duì)齊,1-居中對(duì)齊,2-右對(duì)齊。
|
AutoSize
|
用于是否自動(dòng)改變標(biāo)簽的尺寸以適應(yīng)其內(nèi)容,若該屬性設(shè)為True,標(biāo)簽就會(huì)根據(jù)Caption屬性的內(nèi)容進(jìn)行水平變化。
|
WordWrap
|
為了使Caption屬性的內(nèi)容自動(dòng)換行并垂直擴(kuò)充,應(yīng)將該屬性設(shè)為True。此時(shí)AutoSize也應(yīng)為True。
|
2.文本框(TextBox)控件
文本框(TextBox)通常用來顯示用戶輸入的信息,常作為接收用戶輸入的接口?;蛟谠O(shè)計(jì)及運(yùn)行時(shí)為其Text屬性賦值,起信息輸出的作用。TextBox控件顯示的文本一般是可以被用戶編輯、修改的。其主要屬性為:
文本框控件的屬性
屬 性
|
說 明
|
Text
|
文本框中包含的文本內(nèi)容。
|
MultiLine
|
該屬性值為True時(shí)可以接收多行文本。此時(shí),PassWordChar屬性將不起作用。
|
ScrollBars
|
0-沒有滾動(dòng)條,1-水平,2-垂直,3-同時(shí)具有水平及垂直。
|
PassWordChar
|
指定顯示在文本框中的替代符,如一串"*"號(hào)等,主要用于口令輸入。
|
MaxLength
|
指定顯示在文本框中的字符數(shù),超出部分不接收。
|
Locked
|
決定控件是否可編輯。
|
3.命令按鈕(CommandButton)控件
命令按鈕常常用接收用戶的操作信息,激發(fā)相應(yīng)的事件過程。它是用戶與程序交互的最簡(jiǎn)便的方法。
命令按紐控件的屬性
屬 性
|
說 明
|
Caption
|
按紐的標(biāo)題,即顯示在按紐的文本
|
Font
|
設(shè)置Caption字體、字體樣式及大小等
|
Default
|
該屬性為True時(shí),指定它為窗體的缺省按紐
|
Cancel
|
該屬性為Ture時(shí),指定它為窗體的缺省取消按紐
|
Style
|
0-按紐的外觀是標(biāo)準(zhǔn)Windows風(fēng)格,1-允許帶有自定義圖片
|
Picture
|
Style為1時(shí),指定粘貼到按紐上的圖形文件
|
DownPicture
|
Style為1時(shí),指定按紐按下時(shí)顯示的圖形文件
|
DisabledPicture
|
Style為1時(shí),指定按紐無效時(shí)顯示的圖形文件
|
Eabled
|
該屬性設(shè)為False時(shí),表示控件不可用,呈暗色顯示
|
Visible
|
該屬性設(shè)為False時(shí),表示控件不可見
|
|
|
4.單選按紐(OptionButton)控件
OptionButton用于提供一個(gè)可以打開或者關(guān)閉的選項(xiàng)。在使用時(shí),一般將幾個(gè)選項(xiàng)按紐組成一組,在同一組中,用戶只能選擇其中的一項(xiàng)。
OptionButton控件的常用屬性
屬 性
|
說 明
|
Value
|
表示按紐的狀態(tài)。Value屬性為True時(shí),表示選擇了該按紐,為False時(shí),表示沒有選擇該按紐。Value屬性的缺省值為False。
|
Alignment
|
決定按紐中文本的對(duì)齊方式。0-Left Justify時(shí)表示左對(duì)齊,1-Right Justify時(shí)表示右對(duì)齊。
|
Style
|
用于控制選項(xiàng)按紐的外觀
|
Enabled
|
該屬性的值若被設(shè)為False,表示對(duì)應(yīng)的選項(xiàng)被禁止,運(yùn)行時(shí)將灰色顯示。
|
5.復(fù)選框(CheckBox)控件
CheckBox 與 OptionButton的作用差不多,只是CheckBox允許用戶從程序提供的多個(gè)選項(xiàng)中選中一個(gè)或多個(gè)選擇。CheckBox組中某個(gè)選項(xiàng)被選中時(shí),其它選項(xiàng)不會(huì)失敗。
6.列表框(ListBox)控件
該控件用于顯示項(xiàng)目列表,從列表中可以選擇一項(xiàng)或多項(xiàng)。如果項(xiàng)目總數(shù)超過了可顯示的項(xiàng)目數(shù),Visual Basic會(huì)自動(dòng)給列表框加上滾動(dòng)條。
列表框控件的屬性
屬 性
|
說 明
|
Style
|
設(shè)置列表框的外形
|
List
|
設(shè)置添加到列表框中的選項(xiàng)內(nèi)容
|
Columns
|
指定列表框中的列數(shù)。0-垂直滾動(dòng)單列,1-水平滾動(dòng)單列,大于1-水平滾動(dòng)多列。滾動(dòng)條在列表框容納不下項(xiàng)目時(shí)會(huì)自動(dòng)出現(xiàn)。
|
listIndex
|
它是一個(gè)只讀屬性,用于設(shè)置或返回當(dāng)前選定項(xiàng)目的索引值。
|
ListCount
|
它是一個(gè)只讀屬性,用于返回列框中項(xiàng)目的數(shù)量
|
Sorted
|
該屬性為True時(shí),可以將列表項(xiàng)目按字母順序排列。
|
Selected
|
在程序運(yùn)行時(shí)選中列表框中的選項(xiàng)。
|
7.組合框(ComboBox)控件
組合框(ComboBox)與列表框(ListBox)的功能基本相同,只是組合框允許用戶輸入未出現(xiàn)在指定項(xiàng)目中的項(xiàng)目,并可以將選項(xiàng)折疊起來,以節(jié)省控件占用空間
8.滾動(dòng)條(Hscrollbar和VScrollbor)控件
水平滾動(dòng)條(HScrollbar)和垂直滾動(dòng)條(VScrollbor)通常被用作獨(dú)立的輸入控件,連續(xù)地調(diào)整數(shù)據(jù)。
滾動(dòng)條控件的屬性
屬 性
|
說 明
|
LargeChange
|
該屬性值決定當(dāng)用戶單擊滾動(dòng)條時(shí),定位紐幾個(gè)單位
|
SmallChange
|
該屬性的值決定當(dāng)前用戶單擊滾動(dòng)條兩端的箭頭時(shí),定位紐幾個(gè)單位
|
Value
|
該屬性值決定滾動(dòng)條的當(dāng)前值(是一個(gè)整數(shù))
|
Max 、Min
|
這兩個(gè)屬性決定Value的最大值和最小值
|
9.框架(Frame)控件
Frame控件的主要作用是作為容器安放其它控件對(duì)象,將這些控件對(duì)象分成可標(biāo)識(shí)的控件組。
框架控件的屬性
屬 性
|
說 明
|
Caption
|
設(shè)置框架的標(biāo)題,通常用來說明組名稱
|
Font
|
設(shè)置框架標(biāo)題的字體
|
ForeColor
|
設(shè)置標(biāo)題文字的顏色
|
Enabled
|
設(shè)置框架是否可用。若設(shè)為False,框架的標(biāo)題將灰色顯示,且框架中其它控件同時(shí)被禁用。
|
10.圖片框(PictureBox)控件
圖片框控件的主要屬性
屬 性
|
說 明
|
AutoSize
|
該屬性設(shè)為Ture時(shí),圖片框能自動(dòng)調(diào)整大小與顯示的圖片匹配。
|
Align
|
該屬性設(shè)為1、2、3、4 時(shí)作為容器的圖片框?qū)⒄迟N到窗體的四周。
|
AutoRedraw
|
該屬性設(shè)為Ture后可以將圖形方法的輸出顯示到控件上,并在調(diào)整圖片框大小或移去遮擋圖片框的對(duì)象時(shí),自動(dòng)重繪輸出的圖片。
|
11.圖像框(Image)控件
圖像框控件的屬性
屬 性
|
說 明
|
Stretch
|
該屬性設(shè)為Ture時(shí)可以使圖片自動(dòng)擴(kuò)展以適應(yīng)控件的尺寸,該屬性為False時(shí)控件自動(dòng)調(diào)整大小。
|
PictureBox和Image控件均可以用來顯示圖像,支持的圖像文件格式有:位圖、圖標(biāo)、圖元文件、增強(qiáng)型圖元文件、JPEG和GIF文件。
PictureBox和Image控件的主要區(qū)別為:
1.PictureBox除了可以顯示圖形以外,還可以作為其它控件的容器。用戶可以通過剪貼板給PictureBox添加圖形。它不能延伸圖形以適應(yīng)控件的大小,但可以自動(dòng)調(diào)整控件的大小以顯示完整的圖形。
2.Image控件只能用于顯示圖片,可以延伸圖片的大小以適應(yīng)控件的大小。但支持的屬性、事件、和方法較PictureBox少一些。
12.計(jì)時(shí)器(Timer)控件
計(jì)時(shí)器(Timer)控件可用于實(shí)現(xiàn)每隔一定的時(shí)間間隔執(zhí)行指定的操作,運(yùn)行時(shí)不可見,所以在設(shè)計(jì)時(shí)可以將其畫在窗體的任何位置上。
計(jì)時(shí)器控件的屬性
屬 性
|
說 明
|
Enanled
|
該屬性為True時(shí),計(jì)時(shí)器開始工作,為False時(shí)暫停。
|
Interval
|
該屬性用來設(shè)置計(jì)時(shí)器觸發(fā)的周期,以毫秒計(jì),取值范圍為0~64767。
|
第六章 工程與程序管理
一、 基本要求
1.掌握工程、工程文件的概念以及工程文件的組成。
工程是構(gòu)成應(yīng)用程序文件的集合。
工程文件是與工程相關(guān)聯(lián)的所有文件和對(duì)象以及所設(shè)置的環(huán)境信息的一個(gè)簡(jiǎn)單的列表,所有文件和對(duì)象也可以被其它的工程所共享。工程文件的擴(kuò)展名是.vbp,可以將幾個(gè)工程.vbp文件組成一個(gè)工程組.vbg文件。
工程文件通常由三類模塊組成,即窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。
2.掌握創(chuàng)建、打開、使用和保存工程的方法。會(huì)添加、刪除和保存工程文件,設(shè)置工程屬性。
3.掌握在工程中添加和刪除控件的方法。
在 Visual Basic中,可以同時(shí)打開多個(gè)工程。在建造和測(cè)試有關(guān)用戶創(chuàng)建的控件時(shí),這種功能很有用。在裝入了多個(gè)工程時(shí),【工程資源管理器】窗口的標(biāo)題將變成"工程組",而所有打開的工程部件都會(huì)顯示出來。
第七章 VB應(yīng)用程序結(jié)構(gòu)
一、基本要求
1.理解VB中三種類型的模塊:窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。
在建立VB應(yīng)用程序時(shí),應(yīng)該首先設(shè)計(jì)代碼的結(jié)構(gòu)。VB將代碼存儲(chǔ)在3種不同的模塊中:窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。在這三種模塊中都可以包含:聲明和過程,它們形成了工程的一種模塊層次結(jié)構(gòu),可以較好地組織工程。
(1)窗體模塊
窗體模塊包含窗體和代碼兩部分,窗體部分就是程序運(yùn)行的界面各種元素及其屬性,代碼部分包括通用過程和窗體上各種對(duì)象的事件過程。窗體模塊保存在擴(kuò)展名為.frm的文件中。
(2)標(biāo)準(zhǔn)模塊
標(biāo)準(zhǔn)模塊完全由代碼組成,這些代碼不與具體的對(duì)象相關(guān)聯(lián),一般用來定義全局變量和公用過程和函數(shù)。標(biāo)準(zhǔn)模塊保存在擴(kuò)展名為.bas的文件中,缺省時(shí)應(yīng)用程序不包含標(biāo)準(zhǔn)模塊。
(3)類模塊
類模塊的文件擴(kuò)展名.cls。在類模塊中可以建立新對(duì)象,這些新對(duì)象可以包含自定義的屬性和方法,可以在應(yīng)用程序內(nèi)的過程中使用。類模塊與標(biāo)準(zhǔn)模塊的不同之處在于:標(biāo)準(zhǔn)模塊僅僅含有代碼,而類模塊既含有代碼又含有數(shù)據(jù)。
2.掌握Sub過程、事件過程、通用過程、Function 過程的含義。
過程:一個(gè)應(yīng)用程序是由若干模塊組成的,而每個(gè)模塊又是由若干個(gè)更小的代碼片段組成,將組成這些模塊的代碼片段稱為過程(Procedure)。
子過程:子過程是在響應(yīng)事件時(shí)執(zhí)行的程序段。
在VB中有三種過程:Sub(子)過程、Function(函數(shù))過程和Property(屬性)過程。
(1)Sub過程
Sub過程是沒有返回值的一段程序代碼,可以是模塊中相對(duì)獨(dú)立的一個(gè)結(jié)構(gòu)。Sub過程又稱子過程。
Sub過程的語(yǔ)法如下:
Private?Public?Friend?Static?Sub 過程名[(參數(shù)表)]
[程序段]
[Exit Sub]
[程序段]
End Sub
在VB中,有兩類子(Sub)過程:事件過程和通用過程。
事件過程:是在響應(yīng)事件時(shí)執(zhí)行的代碼塊。事件過程是由VB自動(dòng)給出的,如
Private Sub Form_Click()
語(yǔ)句組
End Sub
通用過程:是指分離的、相對(duì)獨(dú)立的子過程,通常用來完成某一功能,被其它過程調(diào)用。通用過程由用戶自己創(chuàng)建。在一個(gè)過程中,通用過程可以被其他過程調(diào)用。
調(diào)用Sub過程
定義好一個(gè)Sub過程之后,要讓其執(zhí)行,則必須使用Call語(yǔ)句調(diào)用該過程,有兩種方法:
①<過程名>(<實(shí)參表>)如:Call MyProc (FirstArgument, SecondArgument)
②<過程名>(<實(shí)參表>) 如:MyProc FirstArgument, SecondArgument
注意:當(dāng)使用 Call 語(yǔ)法時(shí),參數(shù)必須在括號(hào)內(nèi)。若省略 Call 關(guān)鍵字,則也必須省略參數(shù)兩邊的括號(hào)。
(2)Function 過程
Function 過程是具有返回值的一段程序代碼,可以是模塊中相對(duì)獨(dú)立的一個(gè)結(jié)構(gòu)。Function 過程通常又稱為函數(shù)。
Function過程的語(yǔ)法如下:
Private?Public?Friend?Static?Function Name[(Arglist)] [As數(shù)據(jù)類型]
[程序段]
[Name=Expression]
[Exit Function]
[程序段]
[Name=Expression]
End Function
與Sub過程一樣,F(xiàn)unction過程也是一個(gè)獨(dú)立的過程,可讀取參數(shù),執(zhí)行一系列語(yǔ)句并改變其參數(shù)的值。與子過程不同的是,F(xiàn)unction過程可返回一個(gè)值到調(diào)用的過程。
調(diào)用Function過程
調(diào)用一個(gè)Function過程的方法和調(diào)用內(nèi)部函數(shù)的方法相似,只要在表達(dá)式中通過使用函數(shù)名,并在其后用圓括號(hào)給出相應(yīng)的參數(shù)列表即可。
二、例題解析
例1.編寫一個(gè)Sub過程,計(jì)算N個(gè)數(shù)的和,即1+2+…+N,并通過命令按紐的單擊事件調(diào)用該過程計(jì)算S=1+(1+2)+(1+2+3)+…+(1+2+3+…+K)。
分析:用Sub過程計(jì)算1+2+…+N,首先需要設(shè)置參數(shù)N,另外需要引入一個(gè)參數(shù)S,用于返回該和值。程序如下:
Public Sub A1(N As Integer, S As Long)
S = 0
For J = 1 To N
S = S + J
Next J
End Sub
Private Sub Command1_()
Dim K As Integer, S1 As Integer, I As Integer
K = Val(Text1.Text)
For I = 1 To K
Call A1(I, S1) '調(diào)用過程A1求1+2+…+I,和值返回到S1中
Sum = Sum + S1
Next I
Text2.Text = Sum
End Sub
例2.從鍵盤上任意輸入一個(gè)整數(shù),然后調(diào)用一個(gè)計(jì)算n!的Function過程計(jì)算其階乘數(shù)。使用文本框輸入數(shù)據(jù),用標(biāo)簽輸出數(shù)據(jù)。設(shè)計(jì)界面和運(yùn)行界面如下所示:

代碼如下:
Option Explicit
Function Fact(N As Integer) As Long
Dim I As Integer, F As Long
F = 1
For I = 1 To N
F = F * I
Next I
Fact = F '給函數(shù)過程名賦值
End Function
Private Sub Command1_Click()
Dim X As Integer
X = Val(Text1.Text)
Label2.Caption = Trim(Str(X)) & "的階乘數(shù)為:"
Label3.Caption = Trim(Str(Fact(X))) '使用Fact(X)調(diào)用函數(shù)過程
End Sub
第八章 菜單程序設(shè)計(jì)
一、 基本要求
1.掌握菜單編輯器的使用,能通過菜單的代碼設(shè)計(jì)修改菜單。掌握菜單的有效屬性、可見屬性、復(fù)選屬性的用法,會(huì)創(chuàng)建動(dòng)態(tài)菜單和菜單控件數(shù)組。
2.理解彈出菜單、分隔條和工具欄的設(shè)計(jì)
二、練習(xí)題
1.菜單分為_________菜單和_________菜單,菜單總與____________相關(guān)連,設(shè)計(jì)菜單需要在____________中設(shè)計(jì)。
2.不可以給____________級(jí)菜單設(shè)置快捷鍵。
3.菜單控件只包含一個(gè)____________事件。
4.菜單編輯器的"標(biāo)題"選項(xiàng)對(duì)應(yīng)于菜單控件的____________屬性。
菜單編輯器的"名稱"框?qū)?yīng)于菜單控件的____________屬性。
菜單編輯器的"索引"選項(xiàng)對(duì)應(yīng)于菜單控件的____________屬性。
菜單編輯器的"復(fù)選"選項(xiàng)對(duì)應(yīng)于菜單控件的____________屬性。
菜單編輯器的"有效"選項(xiàng)對(duì)應(yīng)于菜單控件的____________屬性。
菜單編輯器的"可見"選項(xiàng)對(duì)應(yīng)于菜單控件的____________屬性。
5.要在菜單中建立分隔條,應(yīng)在菜單編輯器的___________選項(xiàng)中鍵入一個(gè)_____符號(hào)。
6.為了能夠通過鍵盤訪問主菜單項(xiàng),可在菜單編輯器的"標(biāo)題"選項(xiàng)中的某字母前插入符號(hào)_______。運(yùn)行時(shí),該字母會(huì)帶有下劃線,按Alt鍵和該字母就可以訪問相應(yīng)的主菜單項(xiàng)。
7.每次單擊菜單編輯器中的"?"按紐可以使選定的菜單項(xiàng)_________________。
8.為顯示彈出式菜單,可以使用______________方法。
9.彈出式菜單在___________中設(shè)計(jì),且一定要使其___________級(jí)菜單不可見。
10.要使用工具欄控件設(shè)計(jì)工具欄,應(yīng)首先在"部件"對(duì)話框中選擇________________,然后從工具箱中選擇___________控件。
11.設(shè)置工具欄控件的___________屬性可以改變工具欄在在窗體上的位置。
12.要給工具欄按紐添加圖像,應(yīng)首先在___________控件中添加所需要的圖像,然后在工具欄的屬性頁(yè)中選擇與該控件相關(guān)聯(lián)。
13.要使用狀態(tài)欄控件設(shè)計(jì)狀態(tài)欄,應(yīng)首先在"部件"對(duì)話框中選擇________________,然后從工具箱中選擇___________控件。
14.在打開一個(gè)自定義對(duì)話框時(shí),可以使用_______方法來決定對(duì)話框窗體的顯示模式。
15.用戶可以通過設(shè)置菜單項(xiàng)的___________屬性值為False來使該菜單不可見。
答案:
1.下拉式 彈出式 窗體 菜單編輯器
2.頂
3.Click
4.Caption Name Index Checked Enabled Visible
5.標(biāo)題
6.&
7.向下移一個(gè)等級(jí)
8.PopupMenuu
9.菜單編輯器 頂
10.Microsoft Windows Common Controls6.0 ToolBar
11.Align
13.Microsoft Windows Common Controls6.0 StatusBar
14.Show
15.Visible
第九章 應(yīng)用程序窗體設(shè)計(jì)
一、 基本要求
1.會(huì)利用ActiveX控件進(jìn)行窗體的界面設(shè)計(jì)(見9.1節(jié))。
2.掌握多窗體程序設(shè)計(jì)常用的方法(Load方法、Show方法、Hide方法和Unload方法)
多窗體是指應(yīng)用中有多個(gè)窗口界面,這些窗口分別顯示在屏幕上,它們之間沒有絕對(duì)的從屬關(guān)系。當(dāng)然,窗口之間存在著出現(xiàn)的先后順序和相互調(diào)用的關(guān)系。在多重窗體中每個(gè)單獨(dú)的窗體都依照應(yīng)用功能分類進(jìn)行設(shè)計(jì),所以整個(gè)程序的功能會(huì)更加協(xié)調(diào),相互之間的邏輯關(guān)系更加容易為用戶理解的方式體現(xiàn)出來。
一般說來,多窗體的設(shè)計(jì)的基本方法分成以下幾個(gè)步驟:
S1:分析應(yīng)用要求,將其功能劃分為不同的幾部分;
S2:分別創(chuàng)建各個(gè)窗體、模塊;
S3:在創(chuàng)建窗體時(shí),除各窗體自身要完成的功能外,還要考慮窗體之間的調(diào)用關(guān)系;
S4:點(diǎn)擊【工程】/【屬性】菜單,在【啟動(dòng)對(duì)象】中選擇應(yīng)用運(yùn)行時(shí)首先執(zhí)行的對(duì)象;
S5:運(yùn)行應(yīng)用程序,檢驗(yàn)應(yīng)用及各窗體的運(yùn)行情況。
在多窗體的程序設(shè)計(jì)中經(jīng)常要用到下面四種方法:Load方法、Show方法、Hide方法和Unload方法。詳細(xì)參見9.2.1節(jié)。
3.理解多文檔界面(MDI)的概念。
多文檔界面(Multiple Document Interface)是指在一個(gè)父窗口下面可以同時(shí)打開多個(gè)子窗口。子窗口歸屬與父窗口,如果父窗口關(guān)閉,則所有子窗口全部關(guān)閉。
4.理解MDI應(yīng)用程序中的菜單設(shè)計(jì)。
在 MDI 應(yīng)用程序中,每一個(gè)子窗體的菜單都顯示在 MDI 窗體上,而不是在子窗體本身。當(dāng)子窗體有焦點(diǎn)時(shí),該子窗體的菜單(如果有的話)就代替菜單欄上的 MDI 窗體的菜單。如果沒有可見的子窗體,或者如果帶有焦點(diǎn)的子窗體沒有菜單,則顯示 MDI 窗體的菜單。詳見9.3.2節(jié)
二、練習(xí)題
1.MDI是指________________________________界面。
2.要將某窗體定義為一個(gè)MDI子窗體,需要將其,需要將其________屬性設(shè)置為True。
3.一個(gè)應(yīng)用程序最多可以有__________個(gè)MDI父窗體。
4.在運(yùn)行時(shí),MDI父窗體中的子窗體最小化時(shí),其圖標(biāo)將顯示在__________中。
5.WindowList屬性只應(yīng)用于MDI窗體和MDI子窗體,它對(duì)__________窗體不起作用。
6.使用Load 方法調(diào)用的窗體被__________,并顯示出來,同時(shí)會(huì)產(chǎn)生一個(gè)____________________事件。
7.使用Show方法會(huì)顯示被調(diào)用的窗體如果在調(diào)用Show方法之前沒有把窗體調(diào)入內(nèi)存,那么調(diào)用Show方法會(huì)____________________。
8.使用Hide方法會(huì)隱藏被調(diào)用的窗體,但是在調(diào)用Hide方法之后不會(huì)把窗體____________________,被調(diào)用的窗體中的屬性等已處于__________。
9.使用Unload方法會(huì)從內(nèi)存中__________被調(diào)用的窗體,同時(shí),窗體中的變量和屬性等都會(huì)處于__________,在移去窗體的同時(shí)會(huì)產(chǎn)生一個(gè)____________________事件。
10.當(dāng)MDI窗體的NegotiateToolbars屬性設(shè)為True,則對(duì)象的工具欄出現(xiàn)在____________________上,如果NegotiateToolbars屬性設(shè)為False,則對(duì)象的工具欄就為____________________。
練習(xí)題答案:
1.多文檔
2.MDIChild
3.1
4.MDI父窗體
5.標(biāo)準(zhǔn)
6.存入內(nèi)存 Form_Load()
7.自動(dòng)地把窗體調(diào)入內(nèi)存
8.移出內(nèi)存 無效狀態(tài)
9.移去 Form_QueryUnload()
10.MDI父窗體 不固定的調(diào)色板
第十章 文件處理
一、 基本要求
1.掌握DriveListBox控件、DirListBox控件、FileListBox控件和CommDialog控件,會(huì)利用這些文件控件來設(shè)計(jì)程序。
DriveListBox(驅(qū)動(dòng)器列表框):其常用事件為Change。當(dāng)選擇一個(gè)新的驅(qū)動(dòng)器或通過代碼改變Drive屬性的設(shè)置時(shí)觸發(fā)該事件。
DirListBox(目錄列表框):通過顯示一個(gè)樹型的目錄來列出當(dāng)前驅(qū)動(dòng)器下的分層目錄,當(dāng)用鼠標(biāo)雙擊某一目錄時(shí),將打開該目錄并顯示其子目錄。目錄列表框的常用事件為Change事件,當(dāng)雙擊一個(gè)目錄項(xiàng)或通過代碼改變Path屬性的設(shè)置時(shí)觸發(fā)該事件。
FileListBox(文件列表框):文件列表框是一個(gè)帶滾動(dòng)條的列表框,用來顯示特定目錄下的文件。當(dāng)用戶單擊或雙擊文件列表框中的文件時(shí),激活Click事件或DbClick事件。
CommDialog(公共對(duì)話框控件):其功能是提供一組標(biāo)準(zhǔn)的操作對(duì)話框,可以使用它進(jìn)行打開和保存文件、設(shè)置打印機(jī)選項(xiàng)等。
2.掌握Kill、FileCopy、RmDir、Shell和Name語(yǔ)句的功能和用法。
Kill語(yǔ)句的功能是從磁盤中刪除文件,其語(yǔ)法結(jié)構(gòu)為:Kill pathname
FileCopy語(yǔ)句的功能是復(fù)制一個(gè)文件,其語(yǔ)法結(jié)構(gòu)為:FileCopy source,destination
RmDir語(yǔ)句的功能是刪除一個(gè)存在的而且為空的的目錄或文件夾,其語(yǔ)法結(jié)構(gòu)為:
RmDir path
Shell語(yǔ)句的功能是執(zhí)行一個(gè)可執(zhí)行文件,同時(shí)返回一個(gè)Variant,若成功,則代表這個(gè)程序的任務(wù)ID,若不成功,則返回零。其語(yǔ)法結(jié)構(gòu)為:Shell(pathname[,windowstyle])
Name語(yǔ)句功能是重新命名一個(gè)文件、目錄或文件夾,其語(yǔ)法結(jié)構(gòu)為:
Name oldpathname As newpathname
3.理解文件系統(tǒng)的分類、順序文件、隨機(jī)文件、二進(jìn)制文件、文件系統(tǒng)對(duì)象的概念。
文件的分類
按照文件的存取方式及其組成結(jié)構(gòu)可以分為兩種類型:順序文件、隨機(jī)文件;
按照文件的數(shù)據(jù)編碼方式來分可以分為ASCII碼文件和二進(jìn)制文件;
按照文件的特征屬性來分可以分為系統(tǒng)文件、隱藏文件、只讀文件、普通文件和存檔文件;
按照文件的數(shù)據(jù)性質(zhì)來分可以分為程序文件和數(shù)據(jù)文件。
順序文件:通常指的是普通的文本文件,文件中的字符包括文本字符及控制字符,如","(Chr(14))、換行符"CR,LF"、"Chr(13))"、"Chr(10)"等。數(shù)據(jù)是以ANSI代碼保存。它是一條條記錄按照順序進(jìn)行存放,每條記錄的長(zhǎng)度可以按照實(shí)際的需要變化。
由于這類文件的信息是按照順序從頭到尾按順序排列,而且只提供第一條記錄的存儲(chǔ)位置,所以對(duì)其中的數(shù)據(jù)信息進(jìn)行處理是相當(dāng)困難的。
所以一般的順序文件只用于要求少量空間,不經(jīng)常進(jìn)行數(shù)據(jù)修改的有規(guī)律的文件。 參見10.4.1節(jié)。
隨機(jī)文件: 隨機(jī)存取設(shè)置在存取相同長(zhǎng)度的數(shù)據(jù)記錄,每一數(shù)據(jù)記錄內(nèi)可以設(shè)計(jì)各種欄位以容納不同的數(shù)據(jù)。此種文件數(shù)據(jù)是以二進(jìn)制的位的形式保存在磁盤上。 參見10.4.2節(jié)。
二進(jìn)制文件: 二進(jìn)制文件與隨機(jī)文件類似,唯一不同是不必限制于固定長(zhǎng)度,你可以用喜歡的方式來存取文件。 參見10.4.3節(jié)。
4.了解文件系統(tǒng)對(duì)象編程。
FSO 對(duì)象模型編程包括三項(xiàng)主要任務(wù):
(1)使用CreateObject 方法,或?qū)⒁粋€(gè)變量聲明為 FileSystemObject 對(duì)象類型來創(chuàng)建一個(gè) FileSystemObject 對(duì)象。
(2)對(duì)新創(chuàng)建的對(duì)象使用適當(dāng)?shù)姆椒ā?/p>
(3)訪問該對(duì)象的屬性。