版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程總承包招標(biāo)合同范例
- 買賣按揭房合同范例
- 水泥噴漿機(jī)租賃合同范例
- 居家開荒保潔合同范例
- 銅仁職業(yè)技術(shù)學(xué)院《分析化學(xué)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 桐城師范高等??茖W(xué)?!董h(huán)境資源法》2023-2024學(xué)年第一學(xué)期期末試卷
- 桐城師范高等??茖W(xué)?!洞髷?shù)據(jù)處理與分布式計(jì)算》2023-2024學(xué)年第一學(xué)期期末試卷
- 人教版三年級上冊數(shù)學(xué) 第三單元測量《第1課時(shí)毫米的認(rèn)識》教學(xué)設(shè)計(jì)
- 通化醫(yī)藥健康職業(yè)學(xué)院《腫瘤生物學(xué)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 通化醫(yī)藥健康職業(yè)學(xué)院《生物儀器原理與使用》2023-2024學(xué)年第一學(xué)期期末試卷
- 人工智能對中學(xué)教學(xué)的影響與應(yīng)對策略
- 閉合導(dǎo)線自動(dòng)計(jì)算表
- 分管學(xué)校安全、德育、后勤等業(yè)務(wù)副校長述職報(bào)告
- 筆試考試:HSK筆試(三級)真題模擬匯編(共603題)
- 全國城市一覽表-excel
- 國際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《WPS演示制作與設(shè)計(jì)》計(jì)算機(jī)應(yīng)用基礎(chǔ)高職專科一等獎(jiǎng)(含課件制作試題及答案)
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 全國英語等級考試三級全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
- 全國民用建筑工程技術(shù)措施暖通空調(diào)動(dòng)力
評論
0/150
提交評論