《VB程序設(shè)計(jì)語(yǔ)句》PPT課件.ppt_第1頁(yè)
《VB程序設(shè)計(jì)語(yǔ)句》PPT課件.ppt_第2頁(yè)
《VB程序設(shè)計(jì)語(yǔ)句》PPT課件.ppt_第3頁(yè)
《VB程序設(shè)計(jì)語(yǔ)句》PPT課件.ppt_第4頁(yè)
《VB程序設(shè)計(jì)語(yǔ)句》PPT課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第5章 VB程序設(shè)計(jì)語(yǔ)句,5.1 賦值語(yǔ)句 賦值語(yǔ)句是任何程序設(shè)計(jì)語(yǔ)言中最基本的語(yǔ)句。 格式:LET 變量名=表達(dá)式 功能:它的作用是把右邊表達(dá)式的值賦給左邊的變量。 說(shuō)明: (1)LET表示賦值,通??梢允÷?。 (2)表達(dá)式的類型應(yīng)與變量的類型一致,即同時(shí)為數(shù)值型或同時(shí)為字符型。當(dāng)是數(shù)值型且有不同精度時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度。,5.1 賦值語(yǔ)句,例如:A%=6.3 A為整型變量 A中的結(jié)果為6 在VB中,賦值語(yǔ)句通常是給變量賦值和設(shè)置對(duì)象屬性值。 1.給變量賦值 例如: Dim A As Integer Dim B As String*10 A=100 B=我是中國(guó)人 可以將一個(gè)表達(dá)式的值賦

2、給一個(gè)變量,所以下面的賦值語(yǔ)句是合法的: Dim S As Integer Dim P As Single S=600+1000 P=3.14*S+200*500,5.1 賦值語(yǔ)句,2.為對(duì)象設(shè)置屬性值 在程序中可以用賦值語(yǔ)句為對(duì)象的屬性設(shè)置屬性值。 格式:對(duì)象.屬性=屬性值 例如:為命令按鈕Command1的Caption屬性設(shè)置值。 Command1.Caption=顯示文本 為文本框Text1的FontName及FontSize屬性設(shè)置值: Text1.FontName=“隸書” Text1.FontSize=32,5.2 條件語(yǔ)句,VB提供了多種形式的條件語(yǔ)句來(lái)實(shí)現(xiàn)選擇結(jié)構(gòu)。對(duì)條件進(jìn)行

3、判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。,5.2.1 分支結(jié)構(gòu),1.單分支結(jié)構(gòu)(IfThen語(yǔ)句)格式: (1) If條件Then 語(yǔ)句塊 End If (2) If條件Then語(yǔ)句 功能: (1)如果條件為真,執(zhí)行Then后面的語(yǔ)句塊,如果條件為假,不執(zhí)行Then后面的語(yǔ)句塊,而執(zhí)行End If后的語(yǔ)句。如圖5.1所示。 (2)如果條件為真,執(zhí)行Then后面的語(yǔ)句,如果條件為假,不執(zhí)行Then后面的語(yǔ)句。,5.2.1 分支結(jié)構(gòu),2.雙分支結(jié)構(gòu)(IfThenElse語(yǔ)句)格式: If條件Then 語(yǔ)句塊1 Else 語(yǔ)句塊2 End If 功能:如果條件為真,執(zhí)行Then后面的語(yǔ)句塊1,如果條

4、件為假,執(zhí)行Else后面的語(yǔ)句塊2。 【例5.1】計(jì)算分段函數(shù)。用雙分支結(jié)構(gòu)實(shí)現(xiàn): y=sinx+(x2+1) x0 y=cos-x3+3x x=0 If x0 Then y=sin(x)+(x*x+1) Else y=cos(x)-x3+3*x End If,5.2.1 分支結(jié)構(gòu),3.IIf函數(shù) IIf函數(shù)可用來(lái)執(zhí)行簡(jiǎn)單的條件判斷操作,它是“IfThenElse”結(jié)構(gòu)的簡(jiǎn)寫版本。 格式:result=IIf(條件,True部分,F(xiàn)alse部分) 功能:當(dāng)條件為真時(shí),IIf函數(shù)返回“True部分”,而當(dāng)條件為假時(shí),IIf函數(shù)返回“False部分”。 說(shuō)明:result函數(shù)的返回值,True部分

5、、False部分及結(jié)果變量的類型要一致。,IIf函數(shù),例如: If x10 Then r=1 Else r=2 End If 而用IIf函數(shù)來(lái)代替,可以使程序大大簡(jiǎn)化。 r=IIf(x10,1,2) 【例5.2】某大學(xué)實(shí)行按學(xué)分收費(fèi),如果不超過(guò)12學(xué)分,應(yīng)繳納學(xué)費(fèi)為4000元,如果超過(guò)12學(xué)分,每超過(guò)1學(xué)分,加收500元學(xué)費(fèi)。輸入學(xué)分U,輸出學(xué)分U和應(yīng)繳納的學(xué)費(fèi)T。 【例5.3】設(shè)計(jì)一個(gè)對(duì)輸入整數(shù)求和的程序,輸入0時(shí)程序結(jié)束運(yùn)行。,5.2.1 分支結(jié)構(gòu),4.多分支結(jié)構(gòu)(IfThenElseIf語(yǔ)句) 格式: If條件1Then 語(yǔ)句塊1 ElseIf條件2Then 語(yǔ)句塊2 Else 語(yǔ)句塊n

6、+1 End If 功能:這種結(jié)構(gòu)稱為多分支結(jié)構(gòu)。先測(cè)試條件1,如果條件1為真,執(zhí)行Then后面的語(yǔ)句塊1;如果條件1為假繼續(xù)條件2,如果條件2為真,執(zhí)行后面語(yǔ)句塊2;。如此測(cè)試下去。如果所有條件都為假,則執(zhí)行Else后面的語(yǔ)句塊n+1。 【例5.4】在文本框中,輸入學(xué)生成績(jī),判斷其等級(jí),在窗體中輸出。,5.2.2 情況語(yǔ)句,情況語(yǔ)句(Select Case )的一般格式: Select Case測(cè)試表達(dá)式 Case表達(dá)式列表1 語(yǔ)句塊1 Case表達(dá)式列表2 語(yǔ)句塊2 Case表達(dá)式列表n 語(yǔ)句塊n Case Else 語(yǔ)句塊n+1 End Select 【例5.5】用戶在文本框Text1中

7、分別輸入:Dot,Line,Box,Circle,在窗體上分別畫一個(gè)點(diǎn)、一條線、一個(gè)矩形、或一個(gè)圓等圖形,然后在End Select語(yǔ)句出口。,5.3 循環(huán)語(yǔ)句,5.3.1 For循環(huán) 格式: For循環(huán)變量=初值To終值Step 步長(zhǎng) 循環(huán)體 Exit For Next循環(huán)變量 功能: 當(dāng)循環(huán)變量的值在初值到終值范圍內(nèi)時(shí),執(zhí)行一次循環(huán)體中的語(yǔ)句塊,并使初值增加一個(gè)步長(zhǎng)。當(dāng)循環(huán)變量的值不在初值到終值范圍內(nèi)時(shí),就退出循環(huán),執(zhí)行Next后面的語(yǔ)句。For循環(huán)語(yǔ)句執(zhí)行的流程圖如圖5.5所示。,5.3.1 For循環(huán),【例5.6】計(jì)算S=1+2+3+.+10的和。 計(jì)算機(jī)執(zhí)行一個(gè)For 循環(huán)的過(guò)程是:

8、 (1)執(zhí)行For 語(yǔ)句,把初值1賦給循環(huán)變量P即P=1,把終值10和步長(zhǎng)1保存起來(lái)。 (2)按順序執(zhí)行循環(huán)體中的語(yǔ)句S=S+1,即S=1; (3)執(zhí)行Next語(yǔ)句,把循環(huán)變量P增加一個(gè)步長(zhǎng)1,P=P+1,即P=2,P不大于10,繼續(xù)執(zhí)行循環(huán)體S=S+P; (4)接著執(zhí)行Next語(yǔ)句,如果P不大于10,就繼續(xù)執(zhí)行循環(huán)體,如果P大于10,就不再執(zhí)行循環(huán)體,轉(zhuǎn)向到Next語(yǔ)句后面的語(yǔ)句去執(zhí)行。,5.3.2 Do循環(huán),Do循環(huán)語(yǔ)句用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。此種語(yǔ)句有兩種語(yǔ)法形式。 格式1: Do While|Until條件 語(yǔ)句塊 Exit Do 語(yǔ)句塊 Loop 格式2: Do 語(yǔ)句塊 Ex

9、it Do 語(yǔ)句塊 Loop While|Until條件 功能:當(dāng)指定的關(guān)鍵字While用于指明條件為真(True)時(shí),執(zhí)行循環(huán)體。,5.3.2 Do循環(huán),說(shuō)明: (1)格式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;格式2為先執(zhí)行后判斷,至少執(zhí)行一次循環(huán)體。兩種格式的While的流程圖分別如圖5.6(a)和5.6(b)所示。 (2)關(guān)鍵字Until用于指明條件為假(False)時(shí),執(zhí)行循環(huán)體。 (3)Exit Do:當(dāng)執(zhí)行該語(yǔ)句時(shí),退出循環(huán),執(zhí)行Loop的下一句。Exit Do一般放在IfThenEnd If語(yǔ)句中。,5.3.2 Do循環(huán),下面是最簡(jiǎn)單的形式,While子句的作用是當(dāng)給定的條件為真

10、時(shí)繼續(xù)執(zhí)行循環(huán)體,當(dāng)條件為假時(shí)終止循環(huán)。 Do While條件 循環(huán)體 Loop 【例5.7】用Do While語(yǔ)句編寫計(jì)算S=1+2+3+.+10的和的程序。,5.3.3 多重循環(huán),在循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)嵌套對(duì)For循環(huán)語(yǔ)句和DoLoop語(yǔ)句均適用。 【例5.8】打印九九表。程序運(yùn)行結(jié)果如圖5.7所示。,5.3.4 GoTo語(yǔ)句,格式: GoTo 標(biāo)號(hào)、行號(hào) 功能:該語(yǔ)句的作用是無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句。 【例5.9】求100以內(nèi)的素?cái)?shù)。 判斷某數(shù)m是否為素?cái)?shù)的方法很多,最簡(jiǎn)單的方法是從素?cái)?shù)的定義來(lái)求解,其算法思想是:對(duì)于m從i=2,3,m-

11、1判別m能否被i整除,只要有一個(gè)數(shù)能整除,m不是素?cái)?shù),否則m是素?cái)?shù)。,5.3.5 End語(yǔ)句,格式:End 功能:結(jié)束程序的運(yùn)行。它可放在任何一個(gè)事件過(guò)程中。,5.3.6 應(yīng)用舉例,【例5.10】求 S=1+3+5+99之和。 【例5.11】求 S=1*2*3*10之積。 【例5.12】二重循環(huán)的運(yùn)行結(jié)果。 【例5.13】運(yùn)行下列程序。 【例5.14】編寫在窗口上顯示如圖5.8圖案的程序。 【例5.15】設(shè)計(jì)一個(gè)計(jì)算1+2+3+.+.之和直到累加結(jié)果超過(guò)30000的程序。 【例5.16】用Do While循環(huán),求 S=1+2+3+.+100之和。 【例5.17】用Do While循環(huán),求 S=

12、5*4*3*2*1之積。 【例5.18】產(chǎn)生若干個(gè)隨機(jī)數(shù),直到有一個(gè)隨機(jī)數(shù)大于0.9為止的程序。 【例5.19】產(chǎn)生50個(gè)兩位隨機(jī)整數(shù)的程序。 【例5.20】產(chǎn)生12個(gè)30100隨機(jī)整數(shù)的程序。 【例5.21】輸出150之間,能被3整除的數(shù),并累加這些數(shù)的和。,5.4 數(shù) 組,5.4.1 數(shù)組的概念 S(0,0) S(0,1) S(0,2) S(0,3) S(0,4) S(1,0) S(1,1) S(1,2) S(1,3) S(1,4) S(2,0) S(2,1) S(2,2) S(2,3) S(2,4) S(6,0) S(6,1) S(6,2) S(6,3) S(6,4) 在VB中如果沒(méi)有特

13、別的說(shuō)明,數(shù)組元素的下標(biāo)是從0開(kāi)始的,即第一元素的下標(biāo)為0。 數(shù)組分靜態(tài)數(shù)和動(dòng)態(tài)數(shù)組。在定義數(shù)組時(shí)已確定了數(shù)組的大小,稱為靜態(tài)數(shù)組。在定義數(shù)組時(shí)未給出數(shù)組的大小,省略了括號(hào)中的下標(biāo),稱動(dòng)態(tài)數(shù)組。,5.4.2 靜態(tài)數(shù)組的定義,在VB中,可以用4個(gè)語(yǔ)句來(lái)定義數(shù)組。4個(gè)語(yǔ)句格式相同,但適應(yīng)范圍不一樣。 Dim 用在窗體模塊或標(biāo)準(zhǔn)模塊中,定義窗體或標(biāo)準(zhǔn)模塊數(shù)組,也可在過(guò)程中用。 ReDim 用在過(guò)程中。 Static 用在過(guò)程中。 Public 用在標(biāo)準(zhǔn)模塊中,定義全局?jǐn)?shù)組。 格式: Dim數(shù)組名(下標(biāo))As 類型 Dim數(shù)組名(下界 TO上界),下界 To上界As 類型,5.4.2 靜態(tài)數(shù)組的定義,

14、功能:定義一個(gè)數(shù)組各維的大小,并分配相應(yīng)的存儲(chǔ)空間。 說(shuō)明: (1)格式中的數(shù)組名與簡(jiǎn)單變量的命名規(guī)則相同。 (2)下標(biāo)是數(shù)組的維數(shù),可以用來(lái)定義多維數(shù)組,在一般情況下,若缺省上界,則數(shù)組元素下標(biāo)的下界為0;當(dāng)使用下界 To 上界時(shí),下標(biāo)的范圍可以為-32 76832767。一維數(shù)組的大小為:(上界-下界+1)。 下界都必須小于上界。如果希望下標(biāo)從1開(kāi)始,可以通過(guò)Option Base語(yǔ)句來(lái)實(shí)現(xiàn)。 格式: Option Base N 功能:指定數(shù)組下標(biāo)的缺省下界為1。 說(shuō)明:如果不使用該語(yǔ)句,程序默認(rèn)數(shù)組的下標(biāo)下界為0。Option Base語(yǔ)句在程序中只能使用一次;使用時(shí)必須把它放在數(shù)組定義

15、之前才起作用。,5.4.2 靜態(tài)數(shù)組的定義,(3)As 數(shù)據(jù)類型項(xiàng),用來(lái)說(shuō)明數(shù)組的類型,類型可以是: 整型 Integer 長(zhǎng)整型 Long 單精度 Single 雙精度 Double 字符串型 String 用戶定義型 (4)DIM語(yǔ)句中的下標(biāo)可以是常數(shù),變量或表達(dá)式。下標(biāo)全為常數(shù)稱為靜態(tài)數(shù)組,即數(shù)組大小在編譯時(shí)是確定的。下標(biāo)中有變量則稱為動(dòng)態(tài)數(shù)組,數(shù)組的大小是可變的,只有在程序運(yùn)行時(shí),變量有確定的值后,數(shù)組的大小才確定。 (5)數(shù)組必須先定義,后使用。 (6)當(dāng)用Dim語(yǔ)句定義數(shù)組時(shí),該語(yǔ)句把數(shù)值數(shù)組中的全部數(shù)組元素都初始化為0,而把字符串?dāng)?shù)組中的全部元素都初始化為空字符串。,5.4.2

16、靜態(tài)數(shù)組的定義,例如: Dim A(4) As String 定義了類型為字符型的一維數(shù)組A,共有5個(gè)元素:A(0)、A(1)、A(2)、A(3)、A(4)。 Dim B(1,3 To 5) As Integer 定義了一個(gè)整型的二維數(shù)組,共有6個(gè)元素:B(0,3)、B(0,4)、B(0,5)、B(1,3)、B(1,4)和B(1,5)。 Dim S(5 To 5, 2 To 10 ) As String*20 定義S是一個(gè)定長(zhǎng)字符串組成的二維數(shù)組,下標(biāo)范圍是55,210。每個(gè)數(shù)組元素的字符串長(zhǎng)度是20。 Dim X(10) As Integer 定義了數(shù)組X,有11個(gè)元素 X(10)=100

17、對(duì)X(10)這個(gè)數(shù)組元素賦值為100,5.4.3 數(shù)組下標(biāo)界的測(cè)試函數(shù),有時(shí)需要知道數(shù)組的上界值和下界值,這可以通過(guò)LBound和UBound函數(shù)來(lái)測(cè)試。 格式: LBound(數(shù)組名,維) 格式: UBound(數(shù)組名,維) 功能: LBound函數(shù)返回一個(gè)數(shù)組中指定維的下界。UBound函數(shù)返回一個(gè)數(shù)組中指定維的上界。 【例5.22】 測(cè)試三維數(shù)組的每維的下界和上界的大小。,5.4.4 動(dòng)態(tài)數(shù)組的定義,格式:ReDim 數(shù)組名(下標(biāo))As類型 功能:改變動(dòng)態(tài)數(shù)組的大小和存儲(chǔ)空間。 說(shuō)明: 例如: Dim A(20,20,20) ReDim A(10,10,10) 重新定義動(dòng)態(tài)數(shù)組A的空間

18、ReDim A(5,5,5) 再重新定義動(dòng)態(tài)數(shù)組A的空間 此程序是采用動(dòng)態(tài)數(shù)組,能根據(jù)應(yīng)用的情況確定數(shù)組的大小,因此編寫的程序有更強(qiáng)的實(shí)用性和通用性。,5.4.5 數(shù)組的清除和重新定義,在一個(gè)程序中,同一數(shù)組只能用Dim語(yǔ)句定義一次。但有時(shí)可能需要清除數(shù)組的內(nèi)容或?qū)?shù)組重新定義,這可以用Erase語(yǔ)句來(lái)實(shí)現(xiàn)。 格式:Erase數(shù)組名,數(shù)組名 功能:用于重新初始化靜態(tài)數(shù)組的元素,或者釋放動(dòng)態(tài)數(shù)組的存儲(chǔ)空間。 例如: Dim T(10) As Integer Erase T 【例5.23】 用Erase語(yǔ)句初始化數(shù)組。,5.4.5 數(shù)組的清除和重新定義,程序是定義了一個(gè)靜態(tài)數(shù)組T,用For循環(huán)語(yǔ)句

19、為每個(gè)數(shù)組的元素賦值,然后執(zhí)行Erase語(yǔ)句,將各數(shù)組元素的值清除。程序的運(yùn)行結(jié)果如下: 1 2 3 4 5 0 0 0 0 0,5.4.6 數(shù)組的基本操作,數(shù)組的基本操作包括輸入、輸出及復(fù)制,這些操作都是對(duì)數(shù)組元素進(jìn)行的。 1.給數(shù)組元素賦初值 (1)利用For循環(huán)語(yǔ)句 Dim A(5) As Integer For I=1 To 5 A(I)=0 數(shù)組的每個(gè)元素值為0 Next (2)利用Array函數(shù) 在VB中可以使用Array函數(shù)為數(shù)組元素賦值,即把一個(gè)數(shù)據(jù)集賦值給某個(gè)數(shù)組。,利用Array函數(shù),格式:數(shù)組變量名=Array(數(shù)組元素值) 功能:將數(shù)組元素值賦給數(shù)組各元素的值,各值之間

20、用逗號(hào)分隔。 說(shuō)明:數(shù)組變量名是預(yù)先定義的數(shù)組名(定義時(shí)沒(méi)有指定維數(shù)和上下界,并且類型必須為變量體類型Variant),在數(shù)組變量名之后沒(méi)有括號(hào)。 【例5.24】 用Array函數(shù)給數(shù)組賦值。 說(shuō)明: (1)利用Array函數(shù)對(duì)數(shù)組各元素賦值,定義數(shù)組時(shí)圓括號(hào)可以省略,其類型只能是Variant。 (2)數(shù)組的下界為零,上界由Array函數(shù)括號(hào)內(nèi)的參數(shù)個(gè)數(shù)決定,也可通過(guò)函數(shù)UBound獲得。,5.4.6 數(shù)組的基本操作,2.數(shù)組的輸入 數(shù)組的輸入可以用For循環(huán)語(yǔ)句及文本框控件輸入,也可以通過(guò)InputBox函數(shù)輸入。 (1)InputBox函數(shù)給數(shù)組賦值 【例5.25】 用InputBox函

21、數(shù)給數(shù)組賦值。 (2)用賦值語(yǔ)句給數(shù)組賦值 3.數(shù)組元素的輸出 多維數(shù)組元素的輸出和輸入都可以通過(guò)多重循環(huán)來(lái)實(shí)現(xiàn)。由于VB中的數(shù)組是按行存儲(chǔ)的,因此把控制數(shù)組第一維的循環(huán)變量放在最外層循環(huán)中。 【例5.26】 二維數(shù)組的輸入與輸出。,5.4.6 數(shù)組的基本操作,4.數(shù)組元素的復(fù)制 【例5.27】把N數(shù)組中的數(shù)據(jù)復(fù)制到M數(shù)組中,程序如下:,5.4.7 數(shù)組應(yīng)用舉例,【例5.28】用數(shù)組輸入5個(gè)整數(shù),按逆序排列。 【例5.29】用數(shù)組輸入5個(gè)整數(shù),找出最大的數(shù)。 【例5.30】求數(shù)組中最大元素值和所在的下標(biāo)及各元素之和。 【例5.31】輸入一個(gè)字符串,統(tǒng)計(jì)各字母出現(xiàn)的次數(shù),字母不區(qū)分大小寫。程序的

22、運(yùn)行結(jié)分析: (1)統(tǒng)計(jì)26個(gè)字母出現(xiàn)的個(gè)數(shù),要定義一個(gè)具有26個(gè)元素的數(shù)組,每個(gè)元素的下標(biāo)表示對(duì)應(yīng)的字母,元素的值表示對(duì)應(yīng)字母出現(xiàn)的次數(shù)。 (2)從輸入的字符串中逐一取出字符,轉(zhuǎn)換成大寫字符(使得大小寫不區(qū)分),進(jìn)行判斷。 【例5.32】用選擇法將數(shù)組排序。對(duì)于已知存放在數(shù)組中的n個(gè)數(shù),用選擇法按遞增順序排. 【例5.33】用冒泡排序法將數(shù)組排序。對(duì)于已知存放在數(shù)組中的n個(gè)數(shù),用冒泡法遞增順序排序。,5.5 控件數(shù)組,前面我們介紹了數(shù)值數(shù)組和字符數(shù)組。在VB中,還提供了控件數(shù)組,它為處理一組功能相近的控件提供有力的方法。,5.5.1 控件數(shù)組的概念,控件數(shù)組是由一組相同類型的控件組成。他們共

23、用一個(gè)控件名,具有相同的屬性,但通常有不同的屬性值。當(dāng)建立控件數(shù)組時(shí),系統(tǒng)給每個(gè)元素賦一個(gè)惟一的索引號(hào)(Index),即下標(biāo),下標(biāo)值由Index屬性指定。通過(guò)屬性窗口的Index屬性,可以知道該控件的下標(biāo)是多少,第1個(gè)元素下標(biāo)是0,第2個(gè)元素下標(biāo)是1,以此類推。其所有的元素的Name屬性必須相同??丶?shù)組共享同樣的事件過(guò)程。例如,控件數(shù)組Command有3個(gè)命令按鈕,不論單擊哪個(gè)命令按鈕,都會(huì)調(diào)用同一個(gè)事件過(guò)程。,5.5.1 控件數(shù)組的概念,為了區(qū)分控件數(shù)組中的各個(gè)元素,VB會(huì)把下標(biāo)值傳送給一個(gè)過(guò)程。例如,單擊上述控件數(shù)組中的任意一個(gè)命令按鈕時(shí),調(diào)用的事件過(guò)程如下: Private Sub C

24、ommand_Click(Index As Integer) End Sub,5.5.2 控件數(shù)組的建立,控件數(shù)組是針對(duì)控件建立的,因此與普通數(shù)組的定義方法不一樣??梢酝ㄟ^(guò)以下三種方法來(lái)建立控件數(shù)組。 1.在設(shè)計(jì)時(shí)建立控件數(shù)組方法一: (1)在窗體上畫出作為數(shù)組元素的各個(gè)控件。 (2)單擊要包含到數(shù)組中的某個(gè)控件,將其激活。 (3)在屬性窗口中,選擇Name屬性,并輸入控件的名稱。當(dāng)對(duì)第二個(gè)控件輸入與第一個(gè)控件相同的名稱后,VB將顯示一個(gè)對(duì)話框,如圖5.11所示,詢問(wèn)是否確實(shí)要建立控件數(shù)組。單擊“是”按鈕,將建立控件數(shù)組,單擊“否”按鈕,則放棄建立操作。,5.5.1 控件數(shù)組的概念,方法二:

25、(1)在窗體上畫出一個(gè)控件,將其激活。 (2)執(zhí)行“編輯”菜單中的“復(fù)制”命令(或者按Ctrl+C命令),將該控件放入剪貼板中。 (3)執(zhí)行“編輯”菜單中的“粘貼”命令(或者按Ctrl+V命令),將顯示一個(gè)對(duì)話框,詢問(wèn)是否建立控件數(shù)組,如圖5.11所示。 (4)單擊對(duì)話框中的“是”按鈕,窗體的左上角將出現(xiàn)一個(gè)控件,它就是控件數(shù)組的第二個(gè)元素。 (5)重復(fù)執(zhí)行“編輯”菜單中的“粘貼”命令(或者按Ctrl+V命令),可以建立控件數(shù)組的其他元素。 刪除控件數(shù)組,只要改變一個(gè)控件的Name屬性,并把Index屬性置為空(不是0),就把該控件從控件數(shù)組中刪除。,5.5.1 控件數(shù)組的概念,【例5.34】

26、建立3個(gè)命令按鈕的控件數(shù)組,當(dāng)單擊某個(gè)命令按鈕時(shí),分別執(zhí)行不同的操作。建立控件數(shù)組的操作步驟如下: (1)在窗體上建立一個(gè)命令按鈕,并把其Name屬性設(shè)置為cmdTest,然后用“編輯”菜單中的“復(fù)制”命令和“粘貼”命令復(fù)制兩個(gè)命令按鈕。 (2)把第一、第二、第三個(gè)命令按鈕的Caption屬性分別設(shè)置為“命令按鈕1”、“命令按鈕2”、“命令按鈕3”。,5.5.1 控件數(shù)組的概念,2.在運(yùn)行時(shí)添加控件數(shù)組 【例5.35】在窗體上建立一個(gè)命令按鈕、兩個(gè)單選按鈕和一個(gè)圖片框。每單擊一次命令按鈕,增加一個(gè)新的單選按鈕。如果單擊某個(gè)單選按鈕,則在圖片框中畫出具有不同填充圖案的圓。 本例需要4個(gè)控件,屬性

27、的設(shè)置如表5.1所示。,5.6 過(guò) 程,VB的通用過(guò)程包括兩大類:它們是Sub過(guò)程(即子程序)和Function過(guò)程(即函數(shù))。,5.6.1 過(guò)程的定義,自定義子過(guò)程有兩種方法:在“工具”菜單中定義和在代碼窗口中定義。 1.在“工具”菜單中定義2.在代碼窗口中定義 自定義子過(guò)程的格式如下: Public|PrivateStaticSub子過(guò)程名(形參表列) 語(yǔ)句塊 Exit Sub 語(yǔ)句塊 End Sub 功能:定義一個(gè)Sub過(guò)程。,5.6.1 過(guò)程的定義,說(shuō)明: (1)Public:表示Sub過(guò)程是“公用”過(guò)程,可在整個(gè)程序范圍被調(diào)用(但需要指明該子程序所在的對(duì)象名,如果在窗體 Form1中

28、定義了一個(gè)程序Sub1,在窗體From2中調(diào)用它,應(yīng)該用:Call Form1.Sub1。 (2)Private:表示Sub過(guò)程是“私用”過(guò)程,只能被本窗體中的其他過(guò)程訪問(wèn),不能被其他模塊的過(guò)程訪問(wèn)。 (3)Static:表示該過(guò)程中的局部變量是靜態(tài)變量,在過(guò)程被調(diào)用后其值仍然保留;如果省略“Static”,則局部變量就默認(rèn)為“自動(dòng)”的,即在每次調(diào)用過(guò)程時(shí),局部變量被初始化為0或空字符串。Static對(duì)在過(guò)程之外的變量沒(méi)有影響,即使這些變量在過(guò)程中使用。 (4)形參表列:是含在調(diào)用時(shí)傳給該過(guò)程的簡(jiǎn)單變量名或數(shù)組名,各名字之間用逗號(hào)隔開(kāi)。,5.6.1 過(guò)程的定義,“形參表列”指明了調(diào)用時(shí)傳送給過(guò)

29、程的參數(shù)的類型和個(gè)數(shù),每個(gè)參數(shù)的形式: ByVal(變量名()As 類型,) 參數(shù)也稱形參或啞元,在定義時(shí)沒(méi)有值。ByVal表示該過(guò)程被調(diào)用時(shí),參數(shù)是值傳遞,否則引用傳遞。定義子過(guò)程或子函數(shù)時(shí),都可以無(wú)參數(shù),但函數(shù)過(guò)程無(wú)參數(shù)時(shí),函數(shù)過(guò)程名后的括號(hào)不能省略。這是函數(shù)過(guò)程與子過(guò)程的區(qū)別。 (5)過(guò)程名:是長(zhǎng)度不超過(guò)255個(gè)字符的變量名。其命名規(guī)則與變量命名規(guī)則相同。不要與VB中的關(guān)鍵字重名,也不要與Windows API函數(shù)重名,也不能與同一級(jí)別的變量同名。在同一個(gè)模塊中,同一個(gè)名稱,不能既用作Sub過(guò)程名,又用作Function過(guò)程名。 (6)Exit Sub:表示退出子過(guò)程。 (7)Stati

30、c:表示靜態(tài),Public:表示全局,Private:表示局部。 【例5.36】編寫一個(gè)計(jì)算加減乘除的Sub過(guò)程。,5.6.2 過(guò)程的調(diào)用,在VB中可以用兩種方法調(diào)用Sub過(guò)程。 (1) 使用Call語(yǔ)句調(diào)用Sub過(guò)程。 格式: Call 過(guò)程名(實(shí)參表列) 功能:調(diào)用過(guò)程。 說(shuō)明:實(shí)參的個(gè)數(shù)、數(shù)據(jù)類型都要與被調(diào)用過(guò)程的參數(shù)一一對(duì)應(yīng)。 例如下面是調(diào)用Compute過(guò)程的語(yǔ)句: a1=10.5 b1=10.5 Call Compute(a1,b1) 如果過(guò)程不帶參數(shù),Call語(yǔ)句中過(guò)程后的一對(duì)括號(hào)可以省去,例如有一過(guò)程Sum不帶參數(shù),調(diào)用語(yǔ)句只是一行: Call Sum 這是合法的。,5.6.2

31、 過(guò)程的調(diào)用,(2) 直接使用過(guò)程名調(diào)用Sub過(guò)程,而不必有Call。 格式: 過(guò)程名實(shí)參實(shí)參 功能:調(diào)用過(guò)程。 說(shuō)明:不用括號(hào)把實(shí)參括起來(lái)。例如,也可以這樣調(diào)用上面的過(guò)程: Compute a1,b1 不帶參數(shù)的過(guò)程可以直接寫過(guò)程名即可,假如Compute過(guò)程沒(méi)有參數(shù),以下調(diào)用是符合VB語(yǔ)法的: Compute 【例5.37】編寫一個(gè)過(guò)程調(diào)用上面的過(guò)程Compute程序。,5.6.3 退出過(guò)程,在過(guò)程中可以對(duì)給出的條件測(cè)試,并根據(jù)測(cè)試的結(jié)果確定是否退出過(guò)程,如果要退出過(guò)程,則使用Exit Sub語(yǔ)句。 一進(jìn)入過(guò)程,首先測(cè)試變量b的值是否等于0,如果b的值為0,立即退出Compute過(guò)程。避免

32、在執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤(被零除)。,5.6.4 Sub Main過(guò)程,如果一應(yīng)用程序只包含一個(gè)窗體,則程序從執(zhí)行窗體Form的Load過(guò)程開(kāi)始。如果有多個(gè)窗體,則從設(shè)計(jì)階段建立的第一個(gè)窗體開(kāi)始執(zhí)行。有時(shí),希望在運(yùn)行窗體程序之前先執(zhí)行一些操作,此時(shí),可以將這些操作寫在Sub Main過(guò)程中。 Sub Main是在模塊中定義的,如果一個(gè)程序中包含有多個(gè)模塊,只能允許有一個(gè)Sub Main過(guò)程。Sub Main過(guò)程中可以包含若干語(yǔ)句。但它與其他語(yǔ)言中的主程序不同,程序啟動(dòng)時(shí)不會(huì)自動(dòng)執(zhí)行。人們可以指定程序從哪一個(gè)窗體或是Sub Main開(kāi)始執(zhí)行。方法如下:,方法為:,(1)選擇VB主窗口中的“工程”菜單中的“屬性”命令,打開(kāi)“工程屬性”對(duì)話框,單擊“通用”選項(xiàng),如圖5.17所示。 (2)單擊對(duì)話框中的“啟動(dòng)對(duì)象”框右端的箭頭,顯示出當(dāng)前工程中各窗體的名字和Sub Main,可以定義啟動(dòng)工程時(shí)先啟動(dòng)的窗體或Sub Main。如果選擇了Sub Main

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論