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

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

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

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