《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目四_第1頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目四_第2頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目四_第3頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目四_第4頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目四_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項(xiàng)目四選擇結(jié)構(gòu)程序設(shè)計(jì)任務(wù)4.1單條件選擇語句If任務(wù)4.2多分支條件選擇語句SelectCase任務(wù)4.3計(jì)時(shí)器、單選鈕和復(fù)選框控件

任務(wù)4.1單條件選擇語句If

任務(wù)導(dǎo)入

在分支現(xiàn)象中,經(jīng)常遇到具有兩個(gè)分支的現(xiàn)象,即雙分支。例如,在計(jì)算分段函數(shù)

的值時(shí),首先應(yīng)根據(jù)x的值進(jìn)行判斷,當(dāng)x0時(shí),y的值是x的平方根;否則,y的值是x的取負(fù)。學(xué)習(xí)目標(biāo)

(1)能熟練使用If語句解決雙分支現(xiàn)象。

(2)會(huì)使用IIf函數(shù)。

(3)會(huì)使用If語句的嵌套解決多分支現(xiàn)象。任務(wù)實(shí)施

1.比較單行結(jié)構(gòu)條件語句與塊結(jié)構(gòu)條件語句的異同

1)單行結(jié)構(gòu)條件語句

單行條件語句比較簡單,其語法格式為

If〈條件〉Then[〈語句組1〉][Else〈語句組2〉]

【說明】

(1)〈條件〉可以是關(guān)系表達(dá)式、邏輯表達(dá)式或數(shù)值表達(dá)式。如果以數(shù)值表達(dá)式做條件,則非0值為真,0為假。

(2)單行條件語句的執(zhí)行過程為:判斷〈條件〉,若為真,則執(zhí)行〈語句組1〉;否則執(zhí)行Else后面的〈語句組2〉。

(3)如果沒有Else子句,則〈語句組1〉為必要參數(shù),在〈條件〉為真時(shí)執(zhí)行;〈條件〉為False時(shí),什么都不做,執(zhí)行If語句下面的語句。

【課堂演練】

【實(shí)例4-1】輸入x,計(jì)算y的值。其中:

【實(shí)現(xiàn)步驟】

(1)問題分析。該題是數(shù)學(xué)中的一個(gè)分段函數(shù),它表示當(dāng)x≥0時(shí),用公式y(tǒng)?=

來計(jì)算y的值;當(dāng)x?<?0時(shí),用公式y(tǒng)

=–x來計(jì)算y的值。在選擇條件時(shí),即可以選擇x≥0作為條件,也可以選擇x?<?0作為條件。在這里,選x≥0作為選擇條件。這時(shí),當(dāng)x≥0為真時(shí),執(zhí)行y?=?;為假時(shí),執(zhí)行y

=–x。

(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖4.1

所示。圖4.1計(jì)算分段函數(shù)y的值

(3)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle‘定義x、y為單精度數(shù)

x=Val(Text1.Text)’輸入x的值

Ifx>=0Theny=Sqr(x)Elsey=-x‘判斷并計(jì)算

Text2.Text=y’輸出結(jié)果

Text2.Locked=True

EndSub

(4)運(yùn)行程序,結(jié)果如圖4.1所示。

【實(shí)例4-2】已知兩個(gè)數(shù)x和y,比較它們的大小,輸出較大數(shù)。

【實(shí)現(xiàn)步驟】

(1)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖4.2

所示。圖4.2輸出兩數(shù)中的較大數(shù)

(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle‘定義變量數(shù)據(jù)類型為單精度

x=Val(Text1.Text)

y=Val(Text2.Text)

Ifx<yThenLabel3.Caption=“較大數(shù)為”&Str(y)

Ifx>yThenLabel3.Caption=“較大數(shù)為”&Str(x)

EndSub或者編寫代碼為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle'定義變量數(shù)據(jù)類型為單精度數(shù)

x=Val(Text1.Text)

y=Val(Text2.Text)

Ifx<yThent=x:x=y:y=t '如果x小,則交換x、y的值

Label3.Caption="較大數(shù)為"&Str(x)'輸出比較結(jié)果

EndSub

(3)運(yùn)行程序,結(jié)果如圖4.2所示。

2)塊結(jié)構(gòu)條件語句

使用單行結(jié)構(gòu)條件語句,可以滿足許多選擇結(jié)構(gòu)程序設(shè)計(jì)的需要,但是當(dāng)Then部分和Else部分包含較多內(nèi)容時(shí),在一行中就難以容納所有命令了,即使能夠容納,也將使程序結(jié)構(gòu)變得不清晰。為此,VB提供了塊If語句,將一個(gè)選擇結(jié)構(gòu)用多個(gè)語句行來實(shí)現(xiàn)。塊If語句又稱為多行If語句,其語法格式如下:

If〈條件〉Then

〈語句組1〉

[Else

〈語句組2〉]

EndIf

【說明】

(1)在塊結(jié)構(gòu)中,If語句必須是第一行語句。If塊必須以一個(gè)EndIf語句結(jié)束。

(2)當(dāng)程序運(yùn)行到If塊時(shí),首先測試〈條件〉,如果為True,則執(zhí)行Then之后的〈語句組1〉;如果為False,且有Else子句,則執(zhí)行Else部分的〈語句組2〉。執(zhí)行完Then或Else之后的語句列后,從EndIf之后的語句繼續(xù)執(zhí)行。

(3)?Else子句是可選的。

【課堂演練】

【實(shí)例4-3】將【實(shí)例4-1】中命令按鈕Command1的單擊(Click)事件代碼改為塊結(jié)構(gòu)語句。

【修改代碼】

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

Ifx>=0Then

y=Sqr(x)

Else

y=-x

EndIf

Text2.Text=y

Text2.Locked=True

EndSub

【實(shí)例4-4】將【實(shí)例4-2】中命令按鈕Command1的單擊(Click)事件代碼改為塊結(jié)構(gòu)形式。

【修改代碼】

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

y=Val(Text2.Text)

Ifx<yThen

Label3.Caption=“較大數(shù)為”&Str(y)

Else

Label3.Caption=“較大數(shù)為”&Str(x)

EndIf

EndSub

2.使用IIf函數(shù)

使用IIf函數(shù)也可以實(shí)現(xiàn)一些比較簡單的選擇結(jié)構(gòu)。IIf函數(shù)的語法結(jié)構(gòu)為

IIf(〈條件表達(dá)式〉,〈真部分〉,〈假部分〉)

【說明】

(1)〈條件表達(dá)式〉可以是關(guān)系表達(dá)式、布爾表達(dá)式或數(shù)值表達(dá)式。如果用數(shù)值表達(dá)式做條件,則非0為真,0為假。

(2)〈真部分〉是當(dāng)條件表達(dá)式為真時(shí)函數(shù)返回的值,可以是任何表達(dá)式。

(3)〈假部分〉是當(dāng)條件表達(dá)式為假時(shí)函數(shù)返回的值,可以是任何表達(dá)式。

(4)語句

y=IIf(〈條件表達(dá)式〉,〈真部分〉,〈假部分〉)

相當(dāng)于

If〈條件表達(dá)式〉theny=〈真部分〉Elsey=〈假部分〉

(5)執(zhí)行IIf函數(shù)時(shí),先分別計(jì)算真部分和假部分的值,然后根據(jù)條件輸出結(jié)果。例如:

y=IIf(x>=0,Sqr(Abs(x)),–x)

3.認(rèn)知If語句的嵌套

1)If語句嵌套語句形式

If語句的嵌套是指If或Else后面的語句塊中又包含If語句。語句形式如下:

If〈條件1〉Then

If〈條件2〉Then

EndIf

EndIf

【課堂演練】

【實(shí)例4-5】用鍵盤輸入三個(gè)不同的數(shù),將它們從大到小排序。

【實(shí)現(xiàn)步驟】

(1)問題分析。對逐個(gè)數(shù)進(jìn)行比較,如果后面的數(shù)大于前面的數(shù),則交換。

(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖4.3

所示。圖4.3從大到小排序

(3)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle,zAsSingle

x=Val(Text1.Text) ‘輸入數(shù)據(jù)

y=Val(Text2.Text)

z=Val(Text3.Text)

Ifx<yThen‘將第1個(gè)數(shù)與第2個(gè)數(shù)進(jìn)行比較,使大數(shù)在前

t=x:x=y:y=t’交換數(shù)據(jù)

EndIf

Ify<zThen

t=y:y=z:z=t ‘使得y>z

Ifx<yThen

'使得x>y,此時(shí)的x、y已不再是原x、y的值

t=x:x=y:y=t

EndIf

EndIf

Label4.Caption=“從大到小排序結(jié)果:”&Str(x)&Str(y)&Str(z)

EndSub

(4)運(yùn)行程序。在文本框中分別輸入三個(gè)數(shù),單擊“排序”按鈕后,排序后的數(shù)顯示在標(biāo)簽控件中,如圖4.3所示。

【實(shí)例4-6】某百貨公司為了促銷,采用購物打折的優(yōu)惠辦法,如圖4.4所示。每位顧客一次購物:

(1)在1000元以上、2000元以下者,按九五折優(yōu)惠;

(2)在2000元以上、3000元以下者,按九折優(yōu)惠;

(3)在3000元以上、5000元以下者,按八五折優(yōu)惠;

(4)在5000元以上者,按八折優(yōu)惠。

【實(shí)現(xiàn)步驟】

(1)問題分析。設(shè)購物款數(shù)為x元,優(yōu)惠價(jià)為y元,優(yōu)惠付款公式如下:

(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖4.4

所示。

(3)編寫程序代碼。命令按鈕Command1的Click事件代碼如下:

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

Ifx<1000Then

y=x '1000元以下不優(yōu)惠Else

Ifx<2000Then

y=0.95*x '1000~2000元,九五折

Else

Ifx<3000Then

y=0.9*x '2000~3000元,九折

Else

Ifx<5000Then

y=0.85*x '3000~5000元,八五折Else

y=0.8*x '5000元以上,八折

EndIf

EndIf

EndIf

EndIf

Text2.Text=y

EndSub

(4)運(yùn)行程序,結(jié)果如圖4.4所示。圖4.4計(jì)算優(yōu)惠價(jià)

2)掌握If語句的嵌套格式ElseIf的使用方法

從【實(shí)例4-6】可以看出,程序代碼中出現(xiàn)了多層If語句嵌套,這影響了程序的清晰性。這種情況下,可以使用If語句的嵌套格式ElseIf進(jìn)行設(shè)計(jì),即ElseIf的塊If語句,它能使程序簡化易懂。

If語句嵌套格式的語法格式如下:

If〈條件1〉Then

〈語句組1〉

ElseIf〈條件2〉Then

〈語句組2〉

[Else

〈語句組n+1〉]

EndIf

【說明】

(1)在If塊中,Else和ElseIf子句都是可選的,可以放置任意多個(gè)ElseIf子句,但是都必須在Else子句之前。

(2)執(zhí)行過程:當(dāng)程序運(yùn)行到If塊時(shí),測試〈條件1〉,如果為真,則執(zhí)行Then之后的語句;如果為假,則依次計(jì)算每個(gè)ElseIf部分的條件式(如果有的話),并加以測試。如果找到某個(gè)為真的條件時(shí),則緊接在其相關(guān)的Then之后的語句組被執(zhí)行。如果沒有一個(gè)ElseIf條件為真(或是根本就沒有ElseIf子句),則程序會(huì)執(zhí)行Else部分的〈語句組n+1〉。在執(zhí)行完Then或Else之后的語句列后,會(huì)從EndIf之后的語句繼續(xù)執(zhí)行。

【課堂演練】

【實(shí)例4-7】修改【實(shí)例4-6】的程序代碼,使用帶ElseIf的塊If語句計(jì)算優(yōu)惠價(jià)。

【修改代碼】

只需將“計(jì)算”命令按鈕Command1的Click事件代碼改寫為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)Ifx<1000Then

y=x

'1000元以下不優(yōu)惠

ElseIfx<2000Then

y=0.95*x '1000~2000元,九五折

ElseIfx<3000Then

y=0.9*x '2000~3000元,九折

ElseIfx<5000Then

y=0.85*x '3000~5000元,八五折

Else

y=0.8*x ‘5000元以上,八折

EndIf

Text2.Text=y

EndSub

【實(shí)例4-8】編制命令按鈕代碼,要求每單擊一次命令按鈕,會(huì)依次在窗體上顯示下面詩詞中的詩句。

【實(shí)現(xiàn)步驟】

(1)問題分析。設(shè)一整型變量i,當(dāng)其值為1時(shí),顯示第一句詩詞,當(dāng)其值為2時(shí),顯示第二句詩詞,依次類推。

(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖4.5

所示。

(3)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為

PrivateSubCommand1_Click()

Label1.FontName=“隸書”

Label1.FontSize=14

Label1.ForeColor=QBColor(4)Label1.Caption="靜夜思"'設(shè)置標(biāo)簽Label1的標(biāo)題

Command1.Caption="顯示"'設(shè)置命令按鈕的標(biāo)題屬性

StaticiAsInteger'聲明靜態(tài)變量i為整型數(shù)

i=i+1

Mytext1="床前明月光,"

Mytext2=Mytext1+Chr(13)+"疑是地上霜。" 'Chr(13)表示換行Mytext3=Mytext2+Chr(13)+"舉頭望明月,"

Mytext4=Mytext3+Chr(13)+"低頭思故鄉(xiāng)。"

Ifi=1Then

Label2.Caption=Mytext1

ElseIfi=2Then

Label2.Caption=Mytext2

ElseIfi=3Then

Label2.Caption=Mytext3

Else

Label2.Caption=Mytext4

i=0

EndIf

EndSub

(4)運(yùn)行程序,結(jié)果如圖4.5所示。圖4.5顯示詩句

任務(wù)4.2多分支條件選擇語句SelectCase

任務(wù)導(dǎo)入

用If語句實(shí)現(xiàn)的選擇結(jié)構(gòu)是從兩個(gè)分支中選擇其中之一。在有些問題的處理中,往往不止兩個(gè)分支,而是有多個(gè)分支,要求從多條路徑中選擇其中一條。當(dāng)然,用If語句的嵌套形式也能實(shí)現(xiàn),但不夠便捷。這樣,當(dāng)需要根據(jù)某一表達(dá)式的結(jié)果執(zhí)行多種可能的動(dòng)作時(shí),使用SelectCase語句更為簡潔。學(xué)習(xí)目標(biāo)

(1)理解多分支選擇結(jié)構(gòu)的特點(diǎn)。

(2)能熟練使用SelectCase語句解決多分支問題。任務(wù)實(shí)施

1.掌握SelectCase語句的語法格式

使用SelectCase語句進(jìn)行多分支選擇的特點(diǎn)是:從多個(gè)選擇分支中,選擇第一個(gè)條件為真的路線作為執(zhí)行路線。

SelectCase語句的語法格式為

SelectCase〈測試條件〉

[Case〈表達(dá)式表1〉

〈語句組1〉]

[Case〈表達(dá)式表2〉

〈語句組2〉]

[CaseElse

〈語句組n+1〉]

EndSelect

【說明】

(1)〈測試條件〉為必要參數(shù),可以是任何數(shù)值表達(dá)式或字符串表達(dá)式。

(2)〈語句組〉為可選參數(shù),是一條或多條語句,當(dāng)〈表達(dá)式表〉中有值與〈測試條件〉相匹配時(shí)執(zhí)行。

(3)CaseElse子句用于指明其他語句組,當(dāng)〈測試條件〉和所有的Case子句的〈表達(dá)式表〉中的值都不匹配時(shí),則會(huì)執(zhí)行這些語句。雖然不是必要的,但是在SelectCase塊中,最好還是加上CaseElse語句來處理不可預(yù)見的測試條件值。如果沒有Case值匹配測試條件,也沒有CaseElse語句,則程序會(huì)從EndSelect之后的語句繼續(xù)執(zhí)行。

2.掌握SelectCase語句中〈表達(dá)式表〉的使用方法

在SelectCase語句中的Case子句中,〈表達(dá)式表〉為必要參數(shù),用來測試其中是否有值與〈測試條件〉相匹配。

Case子句中的〈表達(dá)式表〉是一個(gè)或多個(gè)表達(dá)式的列表,有三種形式,見表4-1。當(dāng)使用多個(gè)表達(dá)式的列表時(shí),表達(dá)式與表達(dá)式之間要用逗號“,”隔開。

在Case子句中使用多個(gè)表達(dá)式時(shí),所列表達(dá)式的形式可以不相同,既可以使用值,也可以使用條件或范圍,還可以混合使用。例如:

Case2,4,6To8,Is>10

【課堂演練】

【實(shí)例4-9】用SelectCase語句修改【實(shí)例4-7】中的代碼計(jì)算優(yōu)惠價(jià)。

【修改代碼】

將“計(jì)算”命令按鈕Command1的Click事件代碼改寫為

PrivateSubCommand1_Click()

DimxAsSingle,yAsSingle

x=Val(Text1.Text)

SelectCasex

CaseIs<1000

y=x

CaseIs<2000

y=0.95*x

CaseIs<3000

y=0.9*x

CaseIs<5000

y=0.85*x

CaseElse

y=0.8*x

EndSelect

Text2.Text=y

Text2.Locked=True

EndSub

【實(shí)例4-10】用Select語句編制命令按鈕代碼實(shí)現(xiàn)【實(shí)例4-8】。

【修改代碼】

PrivateSubCommand1_Click()

StaticiAsInteger ‘聲明靜態(tài)變量i為整型數(shù)

i=i+1

Mytext1=“床前明月光,”

Mytext2=Mytext1+Chr(13)+“疑是地上霜?!?/p>

Mytext3=Mytext2+Chr(13)+"舉頭望明月,"Mytext4=Mytext3+Chr(13)+"低頭思故鄉(xiāng)。"

SelectCasei

Case1

Label2.Caption=Mytext1

Case2

Label2.Caption=Mytext2

Case3

Label2.Caption=Mytext3

Case4

Label2.Caption=Mytext4

i=0

EndSelect

EndSub

【實(shí)例4-11】編寫一個(gè)對輸入字符進(jìn)行轉(zhuǎn)換的程序。轉(zhuǎn)換規(guī)則為,將其中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母,空格不轉(zhuǎn)換,其余轉(zhuǎn)換成“*”。要求每輸入一個(gè)字符,馬上就進(jìn)行判斷和轉(zhuǎn)換。

【實(shí)現(xiàn)步驟】

(1)建立應(yīng)用程序用戶界面,如圖4.6所示。

(2)設(shè)置對象屬性,如圖4.7所示。圖4.6設(shè)置用戶界面圖4.7設(shè)置對象屬性

(3)編寫事件代碼。根據(jù)題中要求,當(dāng)在“輸入字符串”文本框中每輸入一個(gè)字符鍵時(shí),馬上就進(jìn)行判斷,這就要求對“輸入字符串”文本框?qū)ο骉ext1對應(yīng)的KeyPress事件進(jìn)行編程。

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

DimaaAsString*1

aa=Chr$(KeyAscii) '將ASCII碼轉(zhuǎn)換成字符SelectCaseaa

Case“A”To“Z”

aa=LCase(aa) ‘大寫轉(zhuǎn)換成小寫

Case“a”To“z”

aa=UCase(aa)

'小寫轉(zhuǎn)換成大寫

Case""

aa=""

CaseElse

aa="*"EndSelect

Text2.Text=Text2.Text&aa '將轉(zhuǎn)換文本框已有的內(nèi)容與剛輸入并轉(zhuǎn)換的字符連接

EndSub

命令按鈕Command1的Click事件代碼為

PrivateSubCommand1_Click()

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

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

EndSub命令按鈕Command2的Click事件代碼為

PrivateSubCommand2_Click()

UnloadMe

EndSub

(4)運(yùn)行程序,結(jié)果如圖4.8所示。圖4.8大小字母轉(zhuǎn)換

任務(wù)4.3計(jì)時(shí)器、單選鈕和復(fù)選框控件

任務(wù)導(dǎo)入

Windows環(huán)境下的應(yīng)用程序非常注重用戶界面的美觀和實(shí)用。控件是構(gòu)成用戶界面的基本元素,只有掌握好控件所具有的屬性、方法以及該控件能接收的事件,才能寫出界面友好、操作簡練的應(yīng)用程序。在VB工具箱中有20個(gè)標(biāo)準(zhǔn)控件,我們在前面已經(jīng)介紹了其中的三個(gè)控件,即標(biāo)簽控件Label、文本框控件Text和命令按鈕控件CommandButton。本任務(wù)將再介紹三個(gè)標(biāo)準(zhǔn)控件:計(jì)時(shí)器Timer、單選鈕OptionButton和復(fù)選框CheckBox。其他控件將在以后任務(wù)中逐漸介紹。學(xué)習(xí)目標(biāo)

(1)會(huì)使用計(jì)時(shí)器(Timer)控件進(jìn)行編程。

(2)能熟練使用單選鈕(OptionButton)控件。

(3)能熟練使用復(fù)選框(CheckBox)控件。任務(wù)實(shí)施

1.使用計(jì)時(shí)器控件進(jìn)行編程

計(jì)時(shí)器(Timer)控件能有規(guī)律地以一定的時(shí)間間隔激發(fā)計(jì)時(shí)器事件,從而執(zhí)行相應(yīng)的程序代碼。

計(jì)時(shí)器控件在設(shè)計(jì)時(shí)顯示為一個(gè)小時(shí)鐘圖標(biāo),而在運(yùn)行時(shí)并不顯示此圖標(biāo),通常用標(biāo)簽來顯示時(shí)間。計(jì)時(shí)器控件的主要屬性如表4-3所示。

Interval(時(shí)間間隔)屬性是一個(gè)非常重要的屬性,表示兩個(gè)計(jì)時(shí)器事件之間的時(shí)間間隔,其值以毫秒(ms)為單位,介于0~64767ms之間,所以最大的時(shí)間間隔約為1.5min。當(dāng)Interval為0時(shí)表示屏蔽計(jì)時(shí)器。

如果需要屏蔽計(jì)時(shí)器,則將Interval設(shè)為0。

如果需要每0.5秒產(chǎn)生一個(gè)計(jì)時(shí)器事件,則將Interval屬性值設(shè)為500,這樣,每隔500毫秒(即0.5秒)就激發(fā)一次計(jì)時(shí)器事件,從而執(zhí)行相應(yīng)的Interval事件過程。

如果需要每1秒產(chǎn)生一個(gè)計(jì)時(shí)器事件,則將Interval屬性值設(shè)為1000,這樣,每隔1000毫秒(即1秒)就激發(fā)一次計(jì)時(shí)器事件。

【課堂演練】

【實(shí)例4-12】設(shè)計(jì)數(shù)字計(jì)時(shí)器。

【實(shí)現(xiàn)步驟】

(1)建立用戶界面。在窗體上建立一個(gè)計(jì)時(shí)器控件和兩個(gè)標(biāo)簽控件,如圖4.9所示。圖4.9建立用戶界面

(2)按表4-4所示設(shè)置對象屬性。

(3)編寫程序代碼。編寫計(jì)時(shí)器控件Timer1的Timer(計(jì)時(shí)器)事件代碼:

PrivateSubTimer1_Timer()

Label2.Caption=Time$‘在標(biāo)簽上顯示當(dāng)前時(shí)間

EndSub

(4)運(yùn)行程序,結(jié)果如圖4.10所示。圖4.10程序運(yùn)行結(jié)果

2.熟悉單選鈕控件的主要屬性

單選鈕的左邊有一個(gè)圖標(biāo)。一般來說,單選鈕總是成組(單選鈕組)出現(xiàn)的,用戶在一組單選鈕中必須選擇一項(xiàng),并且最多只能選擇一項(xiàng)。當(dāng)某一項(xiàng)被選定后,其左邊的圓圈中出現(xiàn)一個(gè)黑點(diǎn)。單選鈕主要用于在多個(gè)選項(xiàng)中由用戶選擇一個(gè)選項(xiàng)的情況。

單選鈕的主要屬性如表4-5所示。

【說明】

(1)要使某個(gè)按鈕成為單選按鈕組中的缺省按鈕,只要在設(shè)計(jì)時(shí)將其Value屬性設(shè)置成True即可。它將保持被選中狀態(tài),直到用戶選擇另一個(gè)不同的單選鈕或用代碼改變它。

(2)要禁用某單選鈕,可將其Enabled屬性設(shè)置為False。程序運(yùn)行時(shí),若此單選鈕變?yōu)榛疑?,則表示無法選取該單選鈕。

3.掌握選用單選鈕的方法

選擇某個(gè)單選鈕可以用下面方法之一:

(1)在運(yùn)行期間,單擊選中單選鈕。

(2)用Tab鍵定位到單選鈕組,然后在組內(nèi)使用方向鍵定位單選鈕。

(3)用代碼將它的Value屬性設(shè)置為真:Option1.Value=

True。

(4)使用在單選鈕標(biāo)題中指定的快捷鍵。

4.了解單選鈕的事件

單選鈕和復(fù)選框都可以接受Click事件,但一般不需要編寫Click事件代碼。因?yàn)楫?dāng)用戶單擊單選鈕或復(fù)選框時(shí),它們會(huì)自動(dòng)改變狀態(tài)。

5.使用單選鈕組

單選鈕的一個(gè)特點(diǎn)是當(dāng)選定其中一個(gè)后,其余就自動(dòng)關(guān)閉。但當(dāng)需要在同一窗體中建立幾組相互獨(dú)立的單選鈕時(shí),就要用框架(Frame)將每一組單選鈕框起來,這樣在一個(gè)框架內(nèi)的單選鈕為一組,它們的操作不影響框外其他組的單選鈕。

【課堂演練】

【實(shí)例4-13】如圖4.11所示,利用單選按鈕設(shè)置字體和字號。

【實(shí)現(xiàn)步驟】

(1)建立應(yīng)用程序用戶界面和設(shè)置對象屬性。在窗體中建立了兩組單選鈕,分別放在名稱為“字體”和“字號”的框架中,如圖4.11所示。當(dāng)用戶選定了“宋體”單選鈕后,還可以選定“14號”單選鈕。該應(yīng)用程序運(yùn)行時(shí),只有當(dāng)用戶選定了字體和大小,并選擇“確定”按鈕后,文本框的字體和大小才改變。圖4.11建立用戶界面和屬性

(2)編寫事件代碼。下面是該窗體中涉及的兩個(gè)事件過程:

PrivateSubCommand1_Click()

IfOption1.ValueThen

Text1.FontName=“宋體”

Else

Text1.FontName=“黑體”

EndIf

IfOption3.ValueThen

Text1.FontSize=10

Else

Text1.FontSize=14

EndIf

EndSub

PrivateSubCommand2_Click()

UnloadMe

EndSub

(3)運(yùn)行程序,結(jié)果如圖4.12所示。圖4.12單選鈕程序運(yùn)行結(jié)果

【實(shí)例4-14】將單選鈕設(shè)計(jì)成圖形按鈕示例。設(shè)計(jì)流動(dòng)字幕板,使?jié)L動(dòng)字幕內(nèi)容“海闊憑魚躍,天高任鳥飛”在窗體中從右向左反復(fù)地移動(dòng)。

【實(shí)現(xiàn)步驟】

(1)建立應(yīng)用程序用戶界面。選擇“新建”工程,進(jìn)入窗體設(shè)計(jì)器,增加一個(gè)計(jì)時(shí)器控件Timer1、一個(gè)標(biāo)簽控件Label1和一個(gè)命令按鈕Command1,四個(gè)單選鈕Option1~Option4。其中,計(jì)時(shí)器控件Timer1可以放在窗體的任何位置,參見圖4.13。圖4.13建立用戶界面

(2)設(shè)置對象屬性。修改Timer1的屬性:Interval改為100,Enabled改為False。修改Option1~Option4的Style屬性為:

1-Graphical(圖形方式)。其他屬性修改參見圖4.14。圖4.14滾動(dòng)字幕程序運(yùn)行結(jié)果

(3)編寫事件代碼。命令按鈕Command1的Click事件代碼:

PrivateSubCommand1_Click()

IfCommand1.Caption=“&S暫?!盩hen

Command1.Caption=“&C繼續(xù)”

Timer1.Enabled=False

Else

Command1.Caption=“&S暫?!?/p>

Timer1.Enabled=True

EndIf

EndSub通過在不斷激發(fā)的Timer事件中改變標(biāo)簽的Left屬性,可改變標(biāo)簽的位置。編寫Timer1的Timer事件代碼:

PrivateSubTimer1_Timer()

IfLabel1.Left+Label1.Width>0Then

Label1.MoveLabel1.Left–20

溫馨提示

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

最新文檔

評論

0/150

提交評論