VB程序设计课件_第1页
VB程序设计课件_第2页
VB程序设计课件_第3页
VB程序设计课件_第4页
VB程序设计课件_第5页
已阅读5页,还剩454页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程式設計基礎

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

本章主要內容數據類型常量與變數運算式常用內部函數程式代碼編寫規則2.1

數據類型

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

數值型

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

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

不带小数部分的数,表示正整数、负整数和零

整型数:-32768~32767

长整型数:-2147483648~2147483647

2.位元組型(Byte)

字节型数可以表示无符号的整数

0~255

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

浮點數。表示帶有小數部分的數

表示數的範圍大,但有誤差。

如超出某个表示范围,则用科学记数法

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

4.貨幣型(Currency)

专门为处理货币而设计的数据类型

它可最多保留小数点右边4位和小數點左邊15位

5.字元型(String)

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

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

“″”稱為起止界限符。

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

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

6.邏輯型(Boolean)

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

7.日期型(Date)

表示日期和时间

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

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

8.對象型(Object)

對象型數據可用來表示應用程式中的對象

9.變體型(Variant)

變體型數據是一種可變的數據類型,可以存放任何類型的數據

當指定變數為Variant變數時,VB會自動完成必要的轉換

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

例:Temp=“22”

’字串

Temp=Temp-1’數值

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

說明:

(1)

不同類型的數據,所占的存儲空間不一樣。

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

2.2.1常量

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

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

1.一般常量

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

2.符號常量

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

格式:

[Public|Private]Const常量名[As數據類型]=運算式

例如:

ConstPI=3.14159AsSingle

2.2常量與變數

變數是在程式運行期間其值可以發生變化的量

1.變數的命名規則

应遵守一些规则:

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

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

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

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

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

變數

變數的聲明就是向程式說明要使用的變數。

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

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

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

(2)隱式聲明

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

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

2.變數的聲明

五類運算式:算術運算式、字串運算式、日期運算式、關係運算式和邏輯運算式

2.3.1算術運算式

算术表达式也称数值表达式,是用算术运算符把数值型常量、变量、函数连接起来的式子

表达式的运算结果是一个数值

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

運算符優先順序

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

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

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

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

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

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

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

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

连接符有两个:&和+

其作用都是将两个字符串连接起来,运算结果是一个字符串。

例如:

”電腦”

&”網路”的結果是:”電腦網絡”

”123”+”45”

的結果是:”12345”

123&”ABC”

的結果是:”123ABC”

2.3.2字串運算式

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

有以下3種運算方式:

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

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

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

2.3.3日期運算式

內部函數是由VB系統提供的,每個內部函數完成某個特定的功能。在程式中使用函數稱為調用函數函數調用的一般格式為:

函数名(參數1,參數2,…)

参数(也稱引數)放在圓括號內,若有多個參數,以逗號分隔。

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

Sqr是內部函數名,289為參數,運行時該語句調用內部函數Sqr來求289的平方根,其計算結果由系統返回給變數y

VB的内部函数大体上分为四大类:数学函数,字符串函数,日期与时间函数和转换函数。2.3.3日期運算式

2.4

常用內部函數

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

使用数学函数的几点说明:

(1)

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

(2)

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

当x≥0時就直接舍去小數,若x<0則舍去小數位後再減1

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

当x=9.4時,Int(9.4+0.5)=9

当x=9.5時,Int(9.5+0.5)=102.4.1數學函數

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

Rnd通常與Int函數配合使用生成[a,b]區間範圍內的隨機整數,可以採用

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

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

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

b=xMod10'求個位數

c=b*10+a'生成新的數

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

處理後的數:63

例2.1

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

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

a=Int(90*Rnd+10)'產生[10,99]區間內的隨機整數

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

Print"產生的兩個亂數:";a,bPrint"和數:";cEndSub運行程式後單擊窗體,輸出結果是:

產生的兩個亂數:5671

和數:127例2.2

通過隨機函數產生2個兩位正整數,求這2個數之和並顯示出來

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

產生的兩個亂數:1837

和數:55

字串函數用於進行字串處理

使用字串函數的幾點說明:

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

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

Mid(“ABCDE”,2)

的結果為“BCDE”

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

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

2.4.2

字串函數

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

例如Instr(3,”A12a34A56”,

”A”)

的結果為7

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

Instr(”A12a34A56”,

”A”)

的結果為1

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

例如String(6,42)

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

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

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

'└┘表示空格

n=InStr(a,"└┘")

'查找空格位置

b=Left(a,n-1)

'取左邊部分

c=Mid(a,n+1)

'取右邊部分

Printb

'顯示左邊部分

Printc

'顯示右邊部分

EndSub

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

Visual

FoxPro

例2.3使用字串函數示例

日期/時間函數用於進行日期和時間處理

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

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"現在距離2005年元旦還有:";a;"天"

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

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

Print"現在是:";e;"時";f;"分"

EndSub

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

现在距离2005年元旦還有:1184天

2005年元旦是:星期6

本月份是:2001年10月

现在是:16時27分例2.4

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

轉換函數用於數據類型的轉換

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

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

例2.4使用轉換函數的示例(留給學生分析)

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

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

612812352.4.4類型轉換函數

2.5.1語句及語法

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

Printa–2*b

↑↑

關鍵字運算式

Text1.Text═“VB程式設計”

↑↑↑↑

对象名属性名赋值号表达式

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

建立程式語句時必須遵守的構建規則稱為語法

统一约定符号如下:

[]方括號,可選項

{}多項中選一項

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

,…

表示同類項目的重複出現

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

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

Sum=Sum+x:Count=Count+1

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

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

&Left(Text3.Text,3)

(3)不區分大小寫字母

VB不區分應用程式代碼字母的大小寫

2.5.2代碼書寫規則

(4)

各關鍵字之間,關鍵字和變數名、常量名、過程名之間一定要有空格分隔

示例:

Private└┘

Sub└┘Form_Click()

(5)使用縮進

在編寫程式代碼時,可以使用縮進來反映代碼的邏輯結構和嵌套關係例如:

PrivateSubForm_Click()

x=4

Ifx<1Then

Print"x<1"

Else

Print"x>=1"

EndIf

EndSub

VB支持結構化的程式設計方法其程式結構清晰,可讀性好,也易於查錯和修改

結構化程式設計方法有三種基本控制結構:

順序結構、選擇結構和迴圈結構具有單入口,單出口的特點

2.5.3結構化程式的基本結構

(a)(b)(c)

順序結構選擇結構迴圈結構AB假真LE真假ABE第3章賦值與輸入輸出一個完整的VB應用程式,一般都包含三部分內容,即

輸入→處理→輸出

可通過VB語句、各種控件實現輸入輸出操作

本章主要內容

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

命令按鈕/標籤/文本框對話框

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

第3章

賦值與輸入輸出

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

功能:計算右端的運算式,並把結果賦值給左端的變數

例3.1

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

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

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

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

C=10.816653.1

賦值語句

本事件過程採用的是順序程式結構,運行的過程是:

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

計算運算式,其結果10.81665→c

輸出結果

賦值含義:

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

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

a=1c=a+b+3

′b未賦過值,為0

執行後,c值為4

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

PrivateSubForm_Click()

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

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

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

“先讀後寫”:讀出x的內容→加1→

寫回x(覆蓋原有內容)

例3.2示例

設計步驟如下:

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

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

其中[]表示求整

K=FMod7

F除以7的餘數

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

(2)創建應用程式的用戶介面

例3.3

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

年的元旦是星期幾

(3)設置對象屬性

(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

運行結果(見上圖)

3.2.1注釋語句Rem

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

Rem交換變數a和b的值

c=a´c為臨時單元

a=bb=c

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

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

3.2.2加載對象語句Load

語法格式:Load對象名

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

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

3.2.3卸載語句Unload

格式:Unload對象名

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

PrivateSubCommand1_Click()UnloadMe′卸載當前窗體

EndSub

Me是系統關鍵字,用來代表當前窗體

格式:End

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

3.2.5

暫停語句Stop

格式:Stop

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

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

結束語句End

3.3.1Print方法

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

Print“程式設計”

´在當前窗體上輸出

Picture1.Print“程式設計”

´在圖片框上輸出

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

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

3.3使用Print方法輸出數據

例:PrivateSubForm_Click()

a=2b="VB"Print50*a

'計算並輸出運算式的值

Printb

'輸出變數的值

Print

'輸出空行

Print"TheTotalis"

'輸出字串常量

EndSub

運行結果:

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

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

運行結果

(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

'以下舍入到小數後1位

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

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

平均年齡:19.7例3.4

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

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

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

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

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

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

學號└┘└┘姓名└┘└┘└┘└┘└┘成績3.3.2特殊列印格式

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

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

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

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

└┘學號└┘└┘└┘└┘└┘姓名└┘└┘└┘└┘└┘└┘成績

程式代碼如下:

PrivateSubForm_Click()PrintPrintTab(15);"學號";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對輸出進行定位

運行結果

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

功能:根據格式串規定的格式來輸出運算式的值

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

輸出結果是:

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

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

窗體(Form)是設計VB應用程式的基本平臺

窗體本身是一個對象,又是其他對象的載體或容器多數應用程式是從窗體開始執行的;一個程式可以有多個窗體

3.4.1窗體的基本屬性

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

3.4窗體

一些常用的窗體屬性:

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

·Caption屬性:用於設置窗體標題欄上的標題內容。

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

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

·Left和Top屬性:確定窗體的左上角在螢幕上的橫、縱坐標

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

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

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

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

·

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

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

當前位置的橫坐標(CurrentX)和縱坐標(CurrentY)

窗體坐標系統

YX·

(CurrentX,CurrentY)

當前位置

窗體作為對象,能夠對事件作出回應。與窗體有關的常用事件有以下幾種。窗體事件過程的一般格式為:

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

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

與窗體有關的常用事件有以下幾種。

(1)Load(裝載)事件

(2)Unload(卸載)事件

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

(4)Paint(繪畫)事件

(5)Click(單擊)事件

(6)DblClick(雙擊)事件

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

PrivateSub對象_KeyPress(KeyAsciiAsInteger)……EndSub

參數KeyAscii返回所按鍵的ASCII碼

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

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

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

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

1.焦點

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

(1)用滑鼠選定對象

(2)按快捷鍵選定對象

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

Text1.SetFocus

′把焦點設置在文本框Text1

2.Tab鍵序

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

3.4.4焦點與Tab鍵序

設置以下3個命令按鈕:

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

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

“結束”按鈕:結束程式的運行設計步驟如下:

(1)創建應用程式的用戶介面和設置對象的屬性

例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);"舉頭望明月,低頭思故鄉"EndSub

PrivateSubCommand2_Click()Cls

EndSubPrivateSubCommand3_Click()End

EndSub

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

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

3.5.1控件的公共屬性

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

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

Command1.Caption=“結束“

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

3.5基本控件

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

(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屬性:確定控件中顯示的文本所用字體的樣式、大小、字體效果等

用於接收用戶的操作資訊,並引發應用程式的某個操作

1.常用屬性

(1)Default屬性和Cancel屬性

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

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

2.常用事件和方法

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

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

1.常用屬性

(1)Alignment屬性

設置標籤中文本的對齊方式

(2)AutoSize屬性確定標籤的大小是否根據標籤的內容自動調整大小

(3)BorderStyle屬性設置標籤的邊框外觀

2.常用事件和方法

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

3.5.3標籤

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

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

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

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

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

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

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

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

(7)Locked屬性

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

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

如輸入4852秒,則應輸出1小時20分52秒

(1)創建應用程式的用戶介面和設置對象屬性

(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

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

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

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

例3.7a

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

PrivateSubForm_Load()

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

3.6.1輸入對話框

用於產生一個能接收用戶輸入的對話框格式:

變數=InputBox(提示[,標題][,缺省值][,xpos][,ypos])

舉例

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

將產生一個如下對話框

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

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

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

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

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

消息框的三種格式

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

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

MsgBox(“輸入檔案名是否正確”)(1)創建應用程式的用戶介面和設置對象屬性(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

從輸入框中輸入圓的半徑,計算圓的周長和麵積當輸入的圓半徑為65時,運行結果例3.9編寫程式,實現兩個文本框內容的交換

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

(2)編寫程式代碼

PrivateSubCommand1_Click()

´“交換”按鈕

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

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

例3.10

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

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

(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

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

例3.11

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

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

(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的內容

Text2.Text=""'清除文本框Text2的內容

Text3.Text=""'清除文本框Text3的內容

Text1.SetFocus'設置焦點

EndSub

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

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

實現標籤的顯示和隱藏,以及改變文字的顏色

(2)編寫程式代碼

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

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

Label1.FontSize=18'字體大小

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

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

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

Label1.Visible=False'隱藏標籤

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

Label1.Visible=True'顯示標籤

EndSub第4章選擇結構

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论