VB程序設(shè)計課件_第1頁
VB程序設(shè)計課件_第2頁
VB程序設(shè)計課件_第3頁
VB程序設(shè)計課件_第4頁
VB程序設(shè)計課件_第5頁
已閱讀5頁,還剩454頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程式設(shè)計基礎(chǔ)

程式中的大部分實際工作是採用程式代碼來處理的任何一個程式設(shè)計語言都有一套嚴格的編程規(guī)定

本章主要內(nèi)容數(shù)據(jù)類型常量與變數(shù)運算式常用內(nèi)部函數(shù)程式代碼編寫規(guī)則2.1

數(shù)據(jù)類型

數(shù)據(jù)是程式處理的對象。為了更好地處理各種各樣的數(shù)據(jù),VB定義了多種數(shù)據(jù)類型

數(shù)值型

數(shù)據(jù)類型字元型邏輯型日期型對象型變體型整數(shù):整型/長整型位元組型浮點型:單/雙精度貨幣型

1.整型(Integer)和長整型(Long)

不帶小數(shù)部分的數(shù),表示正整數(shù)、負整數(shù)和零

整型數(shù):-32768~32767

長整型數(shù):-2147483648~2147483647

2.位元組型(Byte)

字節(jié)型數(shù)可以表示無符號的整數(shù)

0~255

3.單精確度型(Single)和雙精度型(Double)

浮點數(shù)。表示帶有小數(shù)部分的數(shù)

表示數(shù)的範(fàn)圍大,但有誤差。

如超出某個表示范圍,則用科學(xué)記數(shù)法

例如:4.53E8(4.53×108),8.173E-14,3.14D23

4.貨幣型(Currency)

專門為處理貨幣而設(shè)計的數(shù)據(jù)類型

它可最多保留小數(shù)點右邊4位和小數(shù)點左邊15位

5.字元型(String)

用雙引號括起來的一串字元。

例如,“Canton”、”1+2=?”、”Good└┘Morning”等

“″”稱為起止界限符。

字串長度。分變長字串(長度不固定)和定長字串(長度固定)

在VB中,把漢字作為一個字元來處理。

6.邏輯型(Boolean)

邏輯型又稱布爾型,其數(shù)據(jù)只有True(真)和False(假)兩個值

7.日期型(Date)

表示日期和時間

用兩個“#”符號把日期和時間的值括起來

如:#08/20/2001#、#2001-08-20#

8.對象型(Object)

對象型數(shù)據(jù)可用來表示應(yīng)用程式中的對象

9.變體型(Variant)

變體型數(shù)據(jù)是一種可變的數(shù)據(jù)類型,可以存放任何類型的數(shù)據(jù)

當(dāng)指定變數(shù)為Variant變數(shù)時,VB會自動完成必要的轉(zhuǎn)換

在程式中不特別說明時,VB會自動將該變數(shù)默認為Variant型變數(shù)。

例:Temp=“22”

’字串

Temp=Temp-1’數(shù)值

Temp=#01/01/2002#’日期

說明:

(1)

不同類型的數(shù)據(jù),所占的存儲空間不一樣。

(2)數(shù)據(jù)的類型可在數(shù)據(jù)之後加上一個類型符來表示,例如,413&,86!,104.67#等。

2.2.1常量

在程式運行期間其值始終保持不變的量

兩種形式的常量:一般常量和符號常量

1.一般常量

在程式代碼中直接給出的數(shù)據(jù)。例如:123,-263,"VisualBasic","12.57"等

2.符號常量

符號常量是在程序中用符號表示的常量。

格式:

[Public|Private]Const常量名[As數(shù)據(jù)類型]=運算式

例如:

ConstPI=3.14159AsSingle

2.2常量與變數(shù)

變數(shù)是在程式運行期間其值可以發(fā)生變化的量

1.變數(shù)的命名規(guī)則

應(yīng)遵守一些規(guī)則:

(1)變數(shù)名必須以字母開頭;

(2)只能由字母、數(shù)字和下劃線組成。不能含有小數(shù)點、空格等字元;

(3)字元個數(shù)不得超過255個;

(4)不能使用VB的關(guān)鍵字(如語句名、函數(shù)名等)。例如,Print、Sub、End等

(5)不區(qū)分變數(shù)名中字母的大小寫2.2.2

變數(shù)

變數(shù)的聲明就是向程式說明要使用的變數(shù)。

有以下2種方法(顯式聲明與隱式聲明)

(1)聲明變數(shù)(顯式聲明)

用Dim、Public、Private或Static語句來聲明變數(shù)例如:DimsumAsInteger′把sum定義為整型變數(shù)

(2)隱式聲明

不加說明就直接使用變數(shù),此時默認的變數(shù)類型為變體類型(Variant)

也允許使用類型符來聲明變數(shù)的類型,如Num%,Sum!

2.變數(shù)的聲明

五類運算式:算術(shù)運算式、字串運算式、日期運算式、關(guān)係運算式和邏輯運算式

2.3.1算術(shù)運算式

算術(shù)表達式也稱數(shù)值表達式,是用算術(shù)運算符把數(shù)值型常量、變量、函數(shù)連接起來的式子

表達式的運算結(jié)果是一個數(shù)值

VB有8種算術(shù)運算符(表2.2)

運算符優(yōu)先順序

^(乘方)→-(求負)→*/→\→Mod→+-

同級左到右2.3運算式說明:

(1)/和\的區(qū)別:1/2=0.5,1\2=0

(2)Mod用來求整型數(shù)除法的餘數(shù)。例如:9Mod7結(jié)果為2

(3)在運算式中乘號不能省略,如a*b不能寫成ab(或a·b)

(4)括弧不分大、中、小,一律採用圓括號。可以嵌套使用例如,x[x(x+1)+1]

x*(x*(x+1)+1)

字串運算式是採用連接符將兩個字串常量、字串變數(shù)、字串函數(shù)連接起來的式子。

連接符有兩個:&和+

其作用都是將兩個字符串連接起來,運算結(jié)果是一個字符串。

例如:

”電腦”

&”網(wǎng)路”的結(jié)果是:”電腦網(wǎng)絡(luò)”

”123”+”45”

的結(jié)果是:”12345”

123&”ABC”

的結(jié)果是:”123ABC”

2.3.2字串運算式

日期運算式是用運算符(+或-)將算術(shù)運算式、日期型常量、日期型變數(shù)和函數(shù)連接起來的式子。

有以下3種運算方式:

(1)兩個日期型數(shù)據(jù)相減,其結(jié)果是一個數(shù)值型數(shù)據(jù)(相差的天數(shù))。例如:#8/8/2001#-#6/3/2001#的結(jié)果為:66

(2)日期型數(shù)據(jù)加上天數(shù),其結(jié)果為一個日期型數(shù)據(jù)。例如:#12/1/2000#+31的結(jié)果為:#01/01/2001#

(3)日期型數(shù)據(jù)減去天數(shù),其結(jié)果為一個日期型數(shù)據(jù)。例如:#12/1/2000#-32的結(jié)果為:#10/30/2000#

2.3.3日期運算式

內(nèi)部函數(shù)是由VB系統(tǒng)提供的,每個內(nèi)部函數(shù)完成某個特定的功能。在程式中使用函數(shù)稱為調(diào)用函數(shù)函數(shù)調(diào)用的一般格式為:

函數(shù)名(參數(shù)1,參數(shù)2,…)

參數(shù)(也稱引數(shù))放在圓括號內(nèi),若有多個參數(shù),以逗號分隔。

函數(shù)調(diào)用後,一般都有一個確定的函數(shù)值,即返回值。例如:y=Sqr(289)

Sqr是內(nèi)部函數(shù)名,289為參數(shù),運行時該語句調(diào)用內(nèi)部函數(shù)Sqr來求289的平方根,其計算結(jié)果由系統(tǒng)返回給變數(shù)y

VB的內(nèi)部函數(shù)大體上分為四大類:數(shù)學(xué)函數(shù),字符串函數(shù),日期與時間函數(shù)和轉(zhuǎn)換函數(shù)。2.3.3日期運算式

2.4

常用內(nèi)部函數(shù)

VB中備有各種計算算術(shù)函數(shù)的副程式,在程式中要使用某個函數(shù)時,只要調(diào)用該函數(shù)就行了。

使用數(shù)學(xué)函數(shù)的幾點說明:

(1)

三角函數(shù)的引數(shù)單位是弧度如Sin47°應(yīng)寫成Sin(47*3.14159/180)。

(2)

函數(shù)Int是求小於或等於x的最大整數(shù)。例如Int(2)=2,Int(-2.5)=-3

當(dāng)x≥0時就直接舍去小數(shù),若x<0則舍去小數(shù)位後再減1

利用Int函數(shù)可以對數(shù)據(jù)進行四捨五入。例如,對一個正數(shù)x舍去小數(shù)位時進行四捨五入,可採用如下式子:Int(x+0.5)

當(dāng)x=9.4時,Int(9.4+0.5)=9

當(dāng)x=9.5時,Int(9.5+0.5)=102.4.1數(shù)學(xué)函數(shù)

(3)隨機函數(shù)可以模擬自然界中各種隨機現(xiàn)象,它所產(chǎn)生的亂數(shù),可以提供給各種運算或試驗使用

Rnd通常與Int函數(shù)配合使用生成[a,b]區(qū)間範(fàn)圍內(nèi)的隨機整數(shù),可以採用

Int((b-a+1)*Rnd+a)

例如Int(4*Rnd+1)可以產(chǎn)生1~4之間(含1和4)的隨機整數(shù)??梢允?,2,3或4,這由VB運行時隨機給定使用Rnd函數(shù)之前,先用Randomize語句來初始化亂數(shù)生成器編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位數(shù)

b=xMod10'求個位數(shù)

c=b*10+a'生成新的數(shù)

Print"處理後的數(shù):";cEndSub運行程式後單擊窗體,輸出結(jié)果是:

處理後的數(shù):63

例2.1

給定一個兩位正整數(shù)(如36),要求交換個位數(shù)和十位數(shù)的位置,把處理後的數(shù)顯示在窗體上編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimaAsInteger,bAsInteger,cAsIntegerRandomize'初始化亂數(shù)生成器

a=Int(90*Rnd+10)'產(chǎn)生[10,99]區(qū)間內(nèi)的隨機整數(shù)

b=Int(90*Rnd+10)c=a+b'求兩數(shù)之和

Print"產(chǎn)生的兩個亂數(shù):";a,bPrint"和數(shù):";cEndSub運行程式後單擊窗體,輸出結(jié)果是:

產(chǎn)生的兩個亂數(shù):5671

和數(shù):127例2.2

通過隨機函數(shù)產(chǎn)生2個兩位正整數(shù),求這2個數(shù)之和並顯示出來

再次運行程式,單擊窗體後輸出另一組結(jié)果是:

產(chǎn)生的兩個亂數(shù):1837

和數(shù):55

字串函數(shù)用於進行字串處理

使用字串函數(shù)的幾點說明:

(1)函數(shù)Mid(“ABCDEG”,3,2)的結(jié)果為”CD”

若省略n,則得到的是從P開始的往後所有字元,如

Mid(“ABCDE”,2)

的結(jié)果為“BCDE”

(2)插入字符串語句Mid,該語句格式如下:

Mid(字串,p[,n])=子字串用“子字串”替換“字串”中從P開始的與“子字串”等長的一串字元。例如,假設(shè)S=“ABCDE“,執(zhí)行語句Mid(S,3)=“99“後,S的值為“AB99E“

2.4.2

字串函數(shù)

(3)在函數(shù)Instr中,f和k均為可選參數(shù),f表示開始搜索的位置(默認值為1),k表示比較方式,若k為0(默認),表示區(qū)分大小寫;若k為1,則不分大小寫。格式:Instr(f,字串1,字串2,k)

例如Instr(3,”A12a34A56”,

”A”)

的結(jié)果為7

Instr(3,”A12a34A56”,”A”,1)的結(jié)果為4

Instr(”A12a34A56”,

”A”)

的結(jié)果為1

(4)在函數(shù)String中,字元也可以用ASCII代碼(附錄一)來表示

例如String(6,42)

與String(6,”*”)作用相同

先從字串a(chǎn)中找出某個指定字元(本例為空格),再以此字元為界拆分成兩個字串。編寫的窗體單擊過程代碼如下:

PrivateSubForm_Click()DimaAsString,bAsString,cAsString,nAsIntegera="Visual└┘FoxPro"

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Mid(a,n+1)

'取右邊部分

Printb

'顯示左邊部分

Printc

'顯示右邊部分

EndSub

程式運行後單擊窗體,輸出結(jié)果是:

Visual

FoxPro

例2.3使用字串函數(shù)示例

日期/時間函數(shù)用於進行日期和時間處理

說明:函數(shù)Weekday返回值1~7,依次表示星期日到星期六。2.4.3日期與時間函數(shù)

PrivateSubForm_Click()

x=#1/1/2005#

a=x-Date

b=Weekday(x)

c=Year(Date)

d=Month(Date)

e=Hour(Time)

f=Minute(Time)

Print"現(xiàn)在距離2005年元旦還有:";a;"天"

Print"2005年元旦是:星期";b-1

Print"本月份是:";c;"年";d;"月"

Print"現(xiàn)在是:";e;"時";f;"分"

EndSub

運行程式後單擊窗體,輸出結(jié)果如下:

現(xiàn)在距離2005年元旦還有:1184天

2005年元旦是:星期6

本月份是:2001年10月

現(xiàn)在是:16時27分例2.4

使用日期/時間函數(shù)示例(留給學(xué)生分析)

轉(zhuǎn)換函數(shù)用於數(shù)據(jù)類型的轉(zhuǎn)換

說明:Val函數(shù)將數(shù)字字串轉(zhuǎn)換為數(shù)值型數(shù)字時,會自動將字串中的空格去掉,並依據(jù)字串中排列在前面的數(shù)值常量來定值,例如:

Val("A12")的值為0Val("12A12")的值為12Val("1.2e2")的值為120

例2.4使用轉(zhuǎn)換函數(shù)的示例(留給學(xué)生分析)

PrivateSubForm_Click()

x="123"y=123

a=Chr(Asc(x)+5)

b=Str(Val(x)+5)

c=Val(Str(y)+"5")

Printa,b,c

EndSub

運行程式後單擊窗體,輸出結(jié)果如下:

612812352.4.4類型轉(zhuǎn)換函數(shù)

2.5.1語句及語法

VB中的程式語句是執(zhí)行具體操作的指令。由VB關(guān)鍵字、屬性、運算式以及VB可識別符號的組合例如,下列兩個語句:

Printa–2*b

↑↑

關(guān)鍵字運算式

Text1.Text═“VB程式設(shè)計”

↑↑↑↑

對象名屬性名賦值號表達式

簡單的語句只有一個關(guān)鍵字。示例:End2.5程式代碼編寫規(guī)則

建立程式語句時必須遵守的構(gòu)建規(guī)則稱為語法

統(tǒng)一約定符號如下:

[]方括號,可選項

{}多項中選一項

(豎線)用來分隔多個選擇項(選其中之一項)

,…

表示同類項目的重複出現(xiàn)

在編寫程式代碼時,要遵守一定的規(guī)則。不能超越其規(guī)定來自由發(fā)揮

(1)一行寫多條語句。冒號分隔

Sum=Sum+x:Count=Count+1

(2)一條語句寫成多行使用續(xù)行符(一個空格後面跟隨一個下劃線“_”),將長語句分成多行。例如:

PrintText1.Text&Text2.Text&Text4.Text&└┘_

&Left(Text3.Text,3)

(3)不區(qū)分大小寫字母

VB不區(qū)分應(yīng)用程式代碼字母的大小寫

2.5.2代碼書寫規(guī)則

(4)

各關(guān)鍵字之間,關(guān)鍵字和變數(shù)名、常量名、過程名之間一定要有空格分隔

示例:

Private└┘

Sub└┘Form_Click()

(5)使用縮進

在編寫程式代碼時,可以使用縮進來反映代碼的邏輯結(jié)構(gòu)和嵌套關(guān)係例如:

PrivateSubForm_Click()

x=4

Ifx<1Then

Print"x<1"

Else

Print"x>=1"

EndIf

EndSub

VB支持結(jié)構(gòu)化的程式設(shè)計方法其程式結(jié)構(gòu)清晰,可讀性好,也易於查錯和修改

結(jié)構(gòu)化程式設(shè)計方法有三種基本控制結(jié)構(gòu):

順序結(jié)構(gòu)、選擇結(jié)構(gòu)和迴圈結(jié)構(gòu)具有單入口,單出口的特點

2.5.3結(jié)構(gòu)化程式的基本結(jié)構(gòu)

(a)(b)(c)

順序結(jié)構(gòu)選擇結(jié)構(gòu)迴圈結(jié)構(gòu)AB假真LE真假ABE第3章賦值與輸入輸出一個完整的VB應(yīng)用程式,一般都包含三部分內(nèi)容,即

輸入→處理→輸出

可通過VB語句、各種控件實現(xiàn)輸入輸出操作

本章主要內(nèi)容

賦值語句常用基本語句使用Print方法輸出數(shù)據(jù)窗體和基本控件

命令按鈕/標(biāo)籤/文本框?qū)υ捒?/p>

輸入對話框/消息對話框程式舉例

第3章

賦值與輸入輸出

賦值語句是程式設(shè)計中最基本、最常用的語句格式:[Let]變數(shù)名=運算式

功能:計算右端的運算式,並把結(jié)果賦值給左端的變數(shù)

例3.1

已知a=6,b=9,計算c=√a2+b2

編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimaAsSingle,bAsSingle,cAsSinglea=6b=9c=Sqr(a*a+b*b)Print"c="&cEndSub

運行程式後單擊窗體,輸出結(jié)果如下:

C=10.816653.1

賦值語句

本事件過程採用的是順序程式結(jié)構(gòu),運行的過程是:

聲明3個單精確度變數(shù)a,b,c6→a9→b

計算運算式,其結(jié)果10.81665→c

輸出結(jié)果

賦值含義:

將值送到變數(shù)的存儲單元中去說明:

(1)運算式中的變數(shù)必須是賦過值的,否則變數(shù)的初值自動取零值(變長字串變數(shù)取空字元)。例如:

a=1c=a+b+3

′b未賦過值,為0

執(zhí)行後,c值為4

(2)利用賦值語句,可以改變變數(shù)的值,因此,同一變數(shù)在不同時刻可以取不同的值。

PrivateSubForm_Click()

a=3:Print"*A="&aa=7:Print"**A="&aa=a*2+3:Print"***A="&aEndSub

運行程式後單擊窗體,輸出的結(jié)果如下:

*A=3**A=7***A=17(3)賦值語句跟數(shù)學(xué)中等式具有不同的含意,例如賦值語句x=x+1,表示把變數(shù)x的當(dāng)前值加上1後再將結(jié)果賦給變數(shù)

“先讀後寫”:讀出x的內(nèi)容→加1→

寫回x(覆蓋原有內(nèi)容)

例3.2示例

設(shè)計步驟如下:

(1)分析:計算某年y的元旦是星期幾,可由以下式子得出:

F=y-1+[(y-1)/4]-[(y-1)/100]+[(y-1)/400]+1

其中[]表示求整

K=FMod7

F除以7的餘數(shù)

y為某年西元年號,計算出K為星期幾

(2)創(chuàng)建應(yīng)用程式的用戶介面

例3.3

設(shè)計一個“萬年曆”程式,用來查看某

年的元旦是星期幾

(3)設(shè)置對象屬性

(4)編寫程式代碼

功能要求:用戶在“輸入年份”文本框(Text1)中輸入某一年份,單擊“查看”按鈕時,則在“星期”文本框(Text2)中顯示出星期幾

編寫的“查看”按鈕(Command1)Click事件過程代碼如下:

PrivateSubCommand1_Click()

DimyAsInteger,fAsInteger,kAsIntegey=Val(Text1.Text)-1f=y+Int(y/4)–Int(y/100)+Int(y/400)+1k=fMod7

‘等價於f-Int(f/7)*7

嗎?

Text2.Text=k

EndSub

運行結(jié)果(見上圖)

3.2.1注釋語句Rem

在程式的適應(yīng)位置加上必要的注釋,可以提高程式的可讀性語法格式:Rem注釋內(nèi)容或′注釋內(nèi)容功能:在程式中加入注釋內(nèi)容,以便於對程式的理解。例如

Rem交換變數(shù)a和b的值

c=a′c為臨時單元

a=bb=c

說明:(1)如果使用關(guān)鍵字Rem,在Rem和注釋內(nèi)容之間要加一個空格。

(2)在其他語句後使用Rem關(guān)鍵字,必須使用冒號(:)與前面的語句隔開。注釋符(單引號’)可以直接寫在其他語句後面。3.2常用基本語句

3.2.2加載對象語句Load

語法格式:Load對象名

功能:把對象名代表的窗體對象、控件數(shù)組元素等加載到記憶體中。說明:使用Load語句可以加載窗體,但不顯示窗體。當(dāng)VB加載窗體對象時,先把窗體屬性設(shè)置為初始值,再執(zhí)行Load事件過程。例如

LoadForml′加載窗體FormlLoadOption(2)′加載控件數(shù)組中的一個元素

3.2.3卸載語句Unload

格式:Unload對象名

功能:從記憶體中卸載指定窗體或控件。如果卸載的對象是程式惟一的窗體,則將終止程式的執(zhí)行例如

PrivateSubCommand1_Click()UnloadMe′卸載當(dāng)前窗體

EndSub

Me是系統(tǒng)關(guān)鍵字,用來代表當(dāng)前窗體

格式:End

功能:結(jié)束程式的運行。也可以單擊工具欄上的“結(jié)束”按鈕

3.2.5

暫停語句Stop

格式:Stop

功能:暫停程式的運行。可用於調(diào)試程式(設(shè)置中斷點)

也可以通過單擊工具欄上的“中斷”按鈕來實現(xiàn)使用Ctrl+Break組合鍵3.2.4

結(jié)束語句End

3.3.1Print方法

用於顯示(輸出)文本格式:[對象名.]Print[運算式列表]說明:(1)使用的對象可以是窗體等

Print“程式設(shè)計”

′在當(dāng)前窗體上輸出

Picture1.Print“程式設(shè)計”

′在圖片框上輸出

(2)運算式列表是一個或多個運算式,如果省略,則輸出一個空行

(3)當(dāng)輸出多個運算式時,各運算式之間用分號“;”(緊湊格式)或逗號“,”(按區(qū)格式)隔開。按區(qū)格式(14個字元位置)

3.3使用Print方法輸出數(shù)據(jù)

例:PrivateSubForm_Click()

a=2b="VB"Print50*a

'計算並輸出運算式的值

Printb

'輸出變數(shù)的值

Print

'輸出空行

Print"TheTotalis"

'輸出字串常量

EndSub

運行結(jié)果:

輸出數(shù)值數(shù)據(jù)時,前面有一個符號位(正號以空格表示),後面留有一個空格;輸出字串時,前後不留空格。例:PrivateSubForm_Click()

a=3:b=4Printa,b,4+a,Print2*bPrinta,,bPrint"a=";a,"b=";bEndSub

運行結(jié)果

(4)若語句行末尾有分號或逗號,則輸出本行輸出項後不換行編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()

DimaAsInteger,bAsInteger,cAsIntegerDimdAsInteger,sAsInteger,mAsSinglea=6:b=21:c=23:d=15s=a+b+c+dm=(a*18+b*19+c*20+d*21)/s

'以下舍入到小數(shù)後1位

Print"平均年齡:";Int(m*10+0.5)/10EndSub

運行程式後單擊窗體,輸出結(jié)果是:

平均年齡:19.7例3.4

使用Print方法輸出全班學(xué)生的平均年齡

已知18歲6人,19歲21人,20歲23人,21歲15人

1.Spc函數(shù)格式:Spc(n)

功能:在輸出下一項之前插入n個空格。例如:

Print"學(xué)號";Spc(2);"姓名";Spc(5);"成績"

輸出結(jié)果(└┘表示空格):

學(xué)號└┘└┘姓名└┘└┘└┘└┘└┘成績3.3.2特殊列印格式

2.Tab函數(shù)函數(shù)格式:Tab(n)

功能:把輸出位置移到第n列。例如:

PrintTab(2);"學(xué)號";Tab(11);"姓名";Tab(21);"成績"

輸出結(jié)果是(1個漢字占2個位置):

└┘學(xué)號└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成績

程式代碼如下:

PrivateSubForm_Click()PrintPrintTab(15);"學(xué)號";Tab(26);"姓名";Tab(36);"成績"PrintTab(14);String(27,"-")'輸出27個減號字元“-”PrintTab(14);"20011001";Tab(26);"張小三";Tab(36);57PrintTab(14);"20011003";Tab(26);"李小四";Tab(36);69PrintTab(14);"20011012";Tab(26);"馬小五";Tab(36);92PrintTab(14);String(27,"-")'輸出27個減號字元“-”EndSub例3.5使用Tab對輸出進行定位

運行結(jié)果

格式:Format(運算式[,格式串])

功能:根據(jù)格式串規(guī)定的格式來輸出運算式的值

a=4513.7:b=3456.78:TimeVar=#08:30:05#PrintFormat(a,"##,###.##")PrintFormat(a,"$##,###.00")PrintFormat(b,"+##,###.#")PrintFormat(TimeVar,"h:m:s")

輸出結(jié)果是:

4,513.7$4,513.70+3,456.88:30:5

格式符號#和0都能顯示數(shù)字,但符號#會剔除不必要的0,符號0會按規(guī)定補足03.Format函數(shù)

窗體(Form)是設(shè)計VB應(yīng)用程式的基本平臺

窗體本身是一個對象,又是其他對象的載體或容器多數(shù)應(yīng)用程式是從窗體開始執(zhí)行的;一個程式可以有多個窗體

3.4.1窗體的基本屬性

設(shè)置窗體的屬性,可在程式設(shè)計時在屬性窗口中手工設(shè)置,也可以在程式運行時由代碼實現(xiàn)默認屬性

3.4窗體

一些常用的窗體屬性:

·Name屬性:用於設(shè)置窗體的名稱。指定窗體的名稱。只讀,不能在應(yīng)用程式中修改

·Caption屬性:用於設(shè)置窗體標(biāo)題欄上的標(biāo)題內(nèi)容。

·Maxbutton和Minbutton屬性:用於設(shè)置最大化和最小化按鈕

·Height和Width屬性:確定窗體的初始高度和寬度

·Left和Top屬性:確定窗體的左上角在螢?zāi)簧系臋M、縱坐標(biāo)

·Appearance屬性:用於設(shè)置窗體的外觀是平面還是三維的

·BackColor和ForeColor屬性:設(shè)置窗體的背景色和前景色

·Picture屬性:用於在窗體上設(shè)置要顯示的圖形。

[對象.]Picture=LoadPicture("檔案名")

·

Visible(可見性):設(shè)置對象的可見性,默認值為True

座標(biāo)原點(0,0)在窗體的左上角坐標(biāo)軸刻度單位為緹(Twip,567緹為1釐米)

當(dāng)前位置的橫坐標(biāo)(CurrentX)和縱坐標(biāo)(CurrentY)

窗體坐標(biāo)系統(tǒng)

YX·

(CurrentX,CurrentY)

當(dāng)前位置

窗體作為對象,能夠?qū)κ录鞒龌貞?yīng)。與窗體有關(guān)的常用事件有以下幾種。窗體事件過程的一般格式為:

PrivateSubForm_事件名([參數(shù)表])……EndSub

不管窗體名字如何定義,但在事件過程中只能使用Form,而在過程內(nèi)對窗體進行引用時才會用到窗體名字(如Form1等)3.4.2窗體的事件

與窗體有關(guān)的常用事件有以下幾種。

(1)Load(裝載)事件

(2)Unload(卸載)事件

(3)Activate(活動)、Deactivate(非活動)事件

(4)Paint(繪畫)事件

(5)Click(單擊)事件

(6)DblClick(雙擊)事件

(7)KeyPress(按鍵)事件:當(dāng)按下鍵盤上的某個健時,將觸發(fā)KeyPress事件。其事件過程的格式為:

PrivateSub對象_KeyPress(KeyAsciiAsInteger)……EndSub

參數(shù)KeyAscii返回所按鍵的ASCII碼

(1)Show方法:用於快速顯示一個窗體,使該窗體變成活動窗體

(2)Print方法:用於在窗體上輸出運算式的值

(3)Cls方法:用於清除運行時在窗體中顯示的文本或圖形

(4)Move(移動)方法:用於移動並改變窗體或控件的位置和大小3.4.3窗體的方法

1.焦點

焦點(Focus)是對象接收滑鼠或鍵盤輸入的能力。當(dāng)對象得到或失去焦點時,分別會產(chǎn)生GotFocus或LostFocus事件。要將焦點賦給控件,有以下幾種方法:

(1)用滑鼠選定對象

(2)按快捷鍵選定對象

(3)按Tab鍵或Shift+Tab鍵在當(dāng)前窗體的各對象之間切換焦點(4)在代碼中用SetFocus方法來設(shè)置焦點。例如:

Text1.SetFocus

′把焦點設(shè)置在文本框Text1

2.Tab鍵序

Tab鍵序是指用戶按Tab鍵時,焦點在控件間移動的順序反映在控件的TabIndex屬性

3.4.4焦點與Tab鍵序

設(shè)置以下3個命令按鈕:

“顯示”按鈕:用於顯示唐詩“靜夜思”

“清除”按鈕:用於清除所生成的文本

“結(jié)束”按鈕:結(jié)束程式的運行設(shè)計步驟如下:

(1)創(chuàng)建應(yīng)用程式的用戶介面和設(shè)置對象的屬性

例3.6顯示唐詩“靜夜思”

(2)編寫程式代碼。編寫的三個按鈕的Click事件過程代碼如下:

PrivateSubCommand1_Click()BackColor=RGB(255,255,255)ForeColor=RGB(0,0,255)FontName="楷體_GB2312"FontSize=20CurrentX=1200CurrentY=350Print"靜夜思(唐詩)"FontName="幼圓"PrintFontSize=13PrintSpc(6);"床前明月光,疑是地上霜"PrintPrintSpc(6);"舉頭望明月,低頭思故鄉(xiāng)"EndSub

PrivateSubCommand2_Click()Cls

EndSubPrivateSubCommand3_Click()End

EndSub

程式運行後,單擊“顯示”按鈕,輸出結(jié)果

需要在窗體中放置各種控件,才能實現(xiàn)用戶與應(yīng)用程式之間的資訊交互三種基本控件——命令按鈕、標(biāo)籤和文本框

3.5.1控件的公共屬性

(1)Name屬性:控件的Name屬性(名稱)必須以字母開頭,其後可以是字母、數(shù)字和下劃線,名稱長度不能超過40個字元

(2)Caption屬性:任意的字串。以通過程式代碼改變其值,例如:

Command1.Caption=“結(jié)束“

可以在Caption屬性中為控件指定一個訪問鍵。例如,將命令按鈕的Caption屬性設(shè)置為“結(jié)束(&E)”,則運行時該控件外觀如圖3.7所示,只要用戶同時按下Alt鍵和E鍵,就能執(zhí)行該按鈕命令。

3.5基本控件

(3)Enabled屬性:該屬性決定控件是否對用戶產(chǎn)生的事件作出回應(yīng)

(4)Visible屬性該屬性決定控件是否可見,默認值為True。

(5)Height、Width、Top和Left屬性:Height和Width屬性確定控件的高度和寬度,Top和Lelf屬性確定控件在窗體中的位置YXTopHeightLeftWidth

(6)BackColor和ForeColor屬性

(7)FontName、FontSize、FontBold、FontItalic、FontStrikethru和FontUnderline屬性

(8)Font屬性:確定控件中顯示的文本所用字體的樣式、大小、字體效果等

用於接收用戶的操作資訊,並引發(fā)應(yīng)用程式的某個操作

1.常用屬性

(1)Default屬性和Cancel屬性

Default屬性和Cancel屬性分別用於設(shè)置“默認按鈕”和“取消按鈕”

(2)Style屬性設(shè)置命令按鈕的外觀

2.常用事件和方法

命令按鈕最常用的事件是Click(單擊)事件,但不支持DblClick(雙擊)事件。命令按鈕常用的方法是SetFocus方法。3.5.2命令按鈕

標(biāo)籤(Label)主要用來顯示比較固定的提示性資訊。

1.常用屬性

(1)Alignment屬性

設(shè)置標(biāo)籤中文本的對齊方式

(2)AutoSize屬性確定標(biāo)籤的大小是否根據(jù)標(biāo)籤的內(nèi)容自動調(diào)整大小

(3)BorderStyle屬性設(shè)置標(biāo)籤的邊框外觀

2.常用事件和方法

標(biāo)籤最常用的事件是Click(單擊)事件和DblClick(雙擊)事件。標(biāo)籤常用的方法是SetFocus方法。

3.5.3標(biāo)籤

文本框(TextBox)是一個文本編輯區(qū)域,用戶可以在該區(qū)域中輸入、編輯和顯示文本內(nèi)容。默認情況下,文本框只能輸入單行文本,並且最多可以輸入2048個字元

1.常用屬性文本框具有一般控件的常用屬性,但文本框沒有Caption屬性

(1)Maxlength屬性:確定文本框中文本的最大長度

(2)Multiline屬性:指定文本框中是否允許顯示和輸入多行文本

(3)PasswordChar屬性:確定在文本框中是否顯示用戶輸入的字元,常用於密碼輸入

(4)ScrollBars屬性:指定在文本框中是否出現(xiàn)滾動條3.5.4文本框

(5)SelStart屬性、Sellength屬性和SelText屬性

(6)Text屬性設(shè)置或返回文本框中所包含的文本內(nèi)容。

(7)Locked屬性

2.常用事件和方法文本框支持Click、DblClick等滑鼠事件,同時支持Change、GotFocus、LostFocus等事件

文本框常用方法有SetFocus方法和Move方法

如輸入4852秒,則應(yīng)輸出1小時20分52秒

(1)創(chuàng)建應(yīng)用程式的用戶介面和設(shè)置對象屬性

(2)編寫程式代碼

PrivateSubCommand1_Click()

DimhAsInteger,mAsInteger,sAsInteger,tAsIntegert=Val(Text1.Text)h=t\3600t=t-h*3600m=t\60s=t-m*60Text2.Text=hText3.Text=mText4.Text=sEndSub例3.7

輸入一個總秒數(shù),化成小時、分鐘和秒數(shù)PrivateSubCommand2_Click()EndEndSub

對話框既可以用來顯示資訊,也可以用於輸入資訊

VB中能夠建立兩種預(yù)製對話框:輸入框和消息框使用系統(tǒng)提供的函數(shù)(InputBox和MsgBox),而不必為對話框另建窗體先看以下一個例子

例3.7a

通過輸入框輸入姓名,然後再消息框中顯示出來

PrivateSubForm_Load()

x=InputBox("輸入您的姓名","您叫什麼名?")MsgBox(x&"先生:祝您馬到功成!")EndSub3.6使用對話框

3.6.1輸入對話框

用於產(chǎn)生一個能接收用戶輸入的對話框格式:

變數(shù)=InputBox(提示[,標(biāo)題][,缺省值][,xpos][,ypos])

舉例

filename$=InputBox(“請輸入檔案名(不超過8個字元)”,”檔案名”,”vbfile”)

將產(chǎn)生一個如下對話框

filename$=InputBox("請輸入檔案名"+Chr(13)+"(不超過8個字元)","檔案名","vbfile")

使用MsgBox函數(shù),可以產(chǎn)生一個對話框來顯示消息當(dāng)用戶單擊某個按鈕後,將返回一個數(shù)值以標(biāo)明用戶單擊了哪個按鈕其語法格式是:變數(shù)=MsgBox(提示[,對話框類型[,對話框標(biāo)題]])

例:y=MsgBox(“輸入檔案名是否正確”,52,”請確認”)

“對話框類型”一般有3個參數(shù),4+48+0

出現(xiàn)按鈕;圖示類型;默認按鈕;函數(shù)返回值(例3_9b)3.6.2消息對話框

消息框的三種格式

y=MsgBox(“輸入檔案名是否正確”,52,”請確認”)

MsgBox“輸入檔案名是否正確”,52,”請確認”

MsgBox(“輸入檔案名是否正確”)(1)創(chuàng)建應(yīng)用程式的用戶介面和設(shè)置對象屬性(2)編寫程式代碼PrivateSubCommand1_Click()DimrAsSingle,kAsSingle,sAsSingler=Val(InputBox("請輸入圓的半徑","計算圓的周長和麵積"))k=2*3.14159*rs=3.14159*r*rText1.Text=kText2.Text=sMsgBox"計算已完成",,"例3.10"EndSubPrivateSubCommand2_Click()EndEndSub例3.8

從輸入框中輸入圓的半徑,計算圓的周長和麵積當(dāng)輸入的圓半徑為65時,運行結(jié)果例3.9編寫程式,實現(xiàn)兩個文本框內(nèi)容的交換

使用一個臨時單元變數(shù)(t)(1)在窗體上建立兩個標(biāo)籤、兩個文本框和一個命令按鈕

(2)編寫程式代碼

PrivateSubCommand1_Click()

′“交換”按鈕

t=Text1.TextText1.Text=Text2.TextText2.Text=tEndSub3.7程式舉例

在窗體上設(shè)置三個命令按鈕(圖3.15),程式進入運行狀態(tài)後,當(dāng)單擊“窗體變大”命令按鈕時,窗體變大,單擊“窗體變小”按鈕時,窗體變小。單擊“退出”按鈕時,則退出。

例3.10

控制窗體“變大”和“變小”

(1)建立應(yīng)用程式的用戶介面和設(shè)置對象屬性

(2)編寫程式代碼

PrivateSubForm_Load()Form1.Height=4000Form1.Width=4000Form1.Top=1000Form1.Left=1000EndSubPrivateSubCommand1_Click()'“窗體變大”按鈕

Form1.Height=Form1.Height+200'每次增加200點

Form1.Width=Form1.Width+200EndSubPrivateSubCommand2_Click()'“窗體變小”按鈕

Form1.Height=Form1.Height-200'每次減少200點

Form1.Width=Form1.Width-200EndSub

在第一個文本框中輸入文字時,在另外兩個文本框中顯示同樣相同的內(nèi)容,但顯示的字型大小和字體不同。單擊“清除”按鈕時則清除三個文本框中的內(nèi)容

例3.11

在三個文本框中顯示不同的文字效果

(1)建立應(yīng)用程式的用戶介面和設(shè)置對象屬性

(2)編寫程式代碼

PrivateSubForm_Load()Text2.FontName="隸書"Text2.FontSize=16Text3.FontName="楷體_GB2312"Text3.FontSize=20EndSubPrivateSubText1_Change()Text2.Text=Text1.TextText3.Text=Text1.TextEndSubPrivateSubCommand1_Click()'“清除”按鈕

Text1.Text=“”'清除文本框Text1的內(nèi)容

Text2.Text=""'清除文本框Text2的內(nèi)容

Text3.Text=""'清除文本框Text3的內(nèi)容

Text1.SetFocus'設(shè)置焦點

EndSub

(1)在窗體上建立一個標(biāo)籤(Label1)和三個命令按鈕(Command1、Command2和Command3)

三個命令按鈕分別使用訪問鍵Alt+C、Alt+H和Alt+D例3.12

實現(xiàn)標(biāo)籤的顯示和隱藏,以及改變文字的顏色

(2)編寫程式代碼

PrivateSubForm_Load()RandomizeLabel1.BackColor=QBColor(15)'背景色

Label1.ForeColor=QBColor(0)'文字顏色

Label1.FontSize=18'字體大小

EndSubPrivateSubCommand1_Click()'“改變文字顏色”按鈕

Clr=Int(15*Rnd)'產(chǎn)生隨機顏色碼

Label1.ForeColor=QBColor(Clr)EndSubPrivateSubCommand2_Click()'“隱藏標(biāo)籤”按鈕

Label1.Visible=False'隱藏標(biāo)籤

EndSubPrivateSubCommand3_Click()'“顯示標(biāo)籤”按鈕

Label1.Visible=True'顯示標(biāo)籤

EndSub第4章選擇結(jié)構(gòu)

溫馨提示

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

評論

0/150

提交評論