《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目三_第1頁(yè)
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目三_第2頁(yè)
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目三_第3頁(yè)
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目三_第4頁(yè)
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目三_第5頁(yè)
已閱讀5頁(yè),還剩118頁(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)介

項(xiàng)目三賦值與輸入輸出任務(wù)3.1數(shù)據(jù)輸出與賦值任務(wù)3.2利用文本框輸入數(shù)據(jù)任務(wù)3.3使用對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)輸入和輸出

任務(wù)3.1數(shù)據(jù)輸出與賦值

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

一個(gè)沒(méi)有輸出操作的程序是沒(méi)有實(shí)用價(jià)值的。賦值語(yǔ)句是任何程序設(shè)計(jì)中最基本的語(yǔ)句,也是使用最多的語(yǔ)句。

本任務(wù)學(xué)習(xí)文本信息的輸出、賦值語(yǔ)句的使用方法以及VB中常用的基本語(yǔ)句(卸載語(yǔ)句Unload、注釋語(yǔ)句Rem等)。學(xué)習(xí)目標(biāo)

(1)會(huì)使用Print方法將數(shù)據(jù)輸出到窗體上,并能實(shí)現(xiàn)簡(jiǎn)單的對(duì)齊。

(2)能熟練使用標(biāo)簽控件實(shí)現(xiàn)數(shù)據(jù)輸出。

(3)會(huì)使用常用對(duì)象的位置屬性、字體屬性及其他常用

屬性。

(4)能熟練使用賦值語(yǔ)句為變量賦值。

(5)會(huì)熟練使用卸載語(yǔ)句Unload、注釋語(yǔ)句Rem等基本

語(yǔ)句。任務(wù)實(shí)施

1.使用Print方法將數(shù)據(jù)直接輸出到窗體

在VB中,可以使用Print方法實(shí)現(xiàn)數(shù)據(jù)輸出。Print方法可以在窗體上輸出文本字符串或表達(dá)式的值,并可在其他圖形對(duì)象或打印機(jī)上輸出信息。其語(yǔ)法格式為

[〈對(duì)象名〉.]Print[〈表達(dá)式表〉][{,|;}]

【說(shuō)明】

(1)如果要使用Print方法將數(shù)據(jù)輸出到窗體,則應(yīng)先使用Show(顯示)方法,否則輸出的數(shù)據(jù)不可見(jiàn)。

(2)格式中的〈對(duì)象名〉可以是Form(窗體)、PictureBox(圖片框)或Printer(打印機(jī))。如果省略,則在當(dāng)前窗體上直接輸出。例如:

Print“歡迎” ‘省略對(duì)象名,直接將字符串“歡迎”輸出到當(dāng)前窗體

Picture1.Print“歡迎” ’將字符串“歡迎”在圖片框Picture1上顯示出來(lái)

Printer.Print"歡迎" '對(duì)象名為Printer(打印機(jī)),將字符串“歡迎”輸出到打印機(jī)

(3)〈表達(dá)式表〉是一個(gè)或多個(gè)表達(dá)式,可以是數(shù)值表達(dá)式,也可以是字符串。對(duì)于數(shù)值表達(dá)式,將輸出表達(dá)式的值;對(duì)于字符串,將照原樣輸出。如果省略〈表達(dá)式表〉,則輸出一個(gè)空行。例如:

Show

a=5:b=8

Printa ‘輸出變量a的值

Print ’輸出空行

Print"VB" '字符串必須放在雙引號(hào)內(nèi)輸出結(jié)果為

5

VB

輸出數(shù)據(jù)時(shí),數(shù)值數(shù)據(jù)的前面有一個(gè)符號(hào)位,后面有一個(gè)空格,而字符串前后都沒(méi)有空格。

(4)當(dāng)輸出多個(gè)表達(dá)式時(shí),各表達(dá)式之間用分隔符逗號(hào)“,”或分號(hào)“;”隔開(kāi)。

如果使用逗號(hào)分隔符,則各輸出項(xiàng)按標(biāo)準(zhǔn)輸出(分區(qū)輸出)格式顯示,此時(shí),以14個(gè)字符寬度為單位將輸出行分為若干區(qū)段,逗號(hào)后面的表達(dá)式在下一個(gè)區(qū)段輸出。

如果使用分號(hào)分隔符,則按緊湊格式輸出,即數(shù)值型數(shù)據(jù)后多一個(gè)空格,字符串后沒(méi)有空格。

a=1:b=2:c=3

Show

Printa,b,c,“XYZ”

Printa,b,c;“XYZ”;“ABC”

輸出結(jié)果為

123XYZ

123XYZABC

(5)如果省略語(yǔ)句行末尾的分隔符,則Print方法將自動(dòng)換行。如果在語(yǔ)句行的末尾使用逗號(hào)分隔符,則下一個(gè)Print輸出的內(nèi)容將在當(dāng)前Print所輸出信息的下一個(gè)分區(qū)顯示。

如果在語(yǔ)句行的末尾使用分號(hào)分隔符,則下一個(gè)Print輸出的內(nèi)容將緊跟在當(dāng)前Print所輸出的信息后面。

(6)?Print方法具有計(jì)算和輸出的雙重功能,對(duì)于表達(dá)式,總是先計(jì)算后輸出。例如:

x=2:y=3

Print(x+y)*2

該例中的Print方法先計(jì)算表達(dá)式(x+y)*2,然后輸出其值10。

【實(shí)例3-1】用Print方法輸出數(shù)據(jù)到窗體上,程序的執(zhí)行結(jié)果如圖3.1所示。圖3.1程序運(yùn)行結(jié)果

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

(1)建立應(yīng)用程序用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器。

(2)設(shè)置對(duì)象屬性。由于不需要在窗體上放置控件,因此這里不需設(shè)置對(duì)象屬性。

(3)編寫事件代碼。由于要求在運(yùn)行程序時(shí)直接顯示輸出結(jié)果,因此使用窗體Form的Load事件。右鍵單擊窗體,打開(kāi)快捷菜單,如圖3.2所示,從快捷菜單中單擊“查看代碼”項(xiàng),打開(kāi)代碼窗口。從對(duì)象下拉列表框中選中“Form”項(xiàng),從過(guò)程下拉列表框中選中“Load”項(xiàng)。在代碼區(qū)中輸入Form_Load()的代碼。圖3.2編寫事件代碼窗體Form的Load事件代碼如下:

PrivateSubForm_Load()

Show

Print“aa”&“bb”,-5*6,Not2<=3

Print“aa”&“bb”;-5*6;Not2<=3

Print ‘如果Print后未寫任何項(xiàng),則輸出一個(gè)空行

PrintNow '顯示當(dāng)前日期和時(shí)間Print

FontSize=18 '設(shè)置字體尺寸

Print"30+60=",

Print30+60

Print

Print"30+60=";30+60

EndSub

(4)運(yùn)行和調(diào)試程序。單擊工具欄中的“啟動(dòng)”按鈕執(zhí)行程序,運(yùn)行結(jié)果如圖3.1所示。單擊“文件”菜單→“工程另存為”命令保存工程。

程序調(diào)試完成后,可單擊“文件”菜單→“移除工程”命令,結(jié)束本次程序的設(shè)計(jì)。

【實(shí)例3-2】使用Print方法,在窗體中直接輸出字符串或數(shù)值表達(dá)式的值。

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

(1)建立應(yīng)用程序用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,在窗體中增加一個(gè)命令按鈕Command1,如圖3.3所示。

(2)設(shè)置對(duì)象屬性。設(shè)置Command1的Caption屬性為“歡迎”。圖3.3增加一個(gè)命令按鈕

(3)編寫事件代碼?!皻g迎”命令按鈕Command1的Click事件代碼如下:

PrivateSubCommand1_Click()

Print

Print“2*3+4=”;2*3+4‘使用“;”分割符

Print ’輸出一個(gè)空行

Print"祝你學(xué)好"

Print,“Visual” ‘使用“,”分割符

Print,,“Baisc”’使用兩個(gè)“,”分割符

Print

Print“祝您學(xué)好”, ‘在行末使用“,”分割符

Print“Visual”;“Baisc”

EndSub

(4)運(yùn)行和調(diào)試程序。單擊工具欄中的“啟動(dòng)”按鈕執(zhí)行程序,首先顯示如圖3.4(a)所示的窗口,單擊“歡迎”按鈕,將顯示如圖3.4(b)所示的窗口。圖3.4運(yùn)行程序

2.掌握與Print方法有關(guān)的函數(shù)的用法

為了使數(shù)據(jù)按指定的格式輸出,VB提供了Tab、Spc等函數(shù),這些函數(shù)可以與Print方法配合使用。

1)?Tab函數(shù)

在Print方法中,可以使用Tab函數(shù)對(duì)輸出進(jìn)行定位,其格式為

Tab(n);

【說(shuō)明】

(1)?n為數(shù)值表達(dá)式,其值為一整數(shù)。Tab函數(shù)把顯示或打印位置移到由參數(shù)n指定的列數(shù),從此列開(kāi)始輸出數(shù)據(jù)。要輸出的內(nèi)容放在Tab函數(shù)后面,并用分號(hào)隔開(kāi)。例如:

PrintTab(20);"姓名";Tab(40);"班級(jí)";Tab(60);"年齡"

(2)通常最左邊的列號(hào)為1。如果當(dāng)前的顯示位置已經(jīng)超過(guò)n,則自動(dòng)下移一行;當(dāng)n大于行的寬度時(shí),顯示位置為

nMod〈行寬〉

(3)當(dāng)在一個(gè)Print方法中有多個(gè)Tab函數(shù)時(shí),每個(gè)Tab函數(shù)對(duì)應(yīng)一個(gè)輸出項(xiàng),各輸出項(xiàng)之間用分號(hào)隔開(kāi)?!菊n堂演練】

【實(shí)例3-3】使用Tab函數(shù)進(jìn)行對(duì)齊輸出,如圖3.5所示。圖3.5使用Tab函數(shù)進(jìn)行對(duì)齊輸出

【實(shí)現(xiàn)方法】

編寫窗體Form的Click事件代碼:

PrivateSubForm_Click()

Show

FontSize=12 ‘設(shè)置輸出文本字體的大小

Print

PrintTab(10);“姓名”;Tab(25);“性別”;Tab(40);“年齡”

Print

PrintTab(10);“劉榴”;Tab(25);“女”;Tab(40);16

PrintTab(10);“韓小強(qiáng)”;Tab(25);“男”;Tab(40);18

EndSub

2)?Spc函數(shù)

在Print方法中,也可以使用Spc函數(shù)來(lái)對(duì)輸出進(jìn)行定位。與Tab函數(shù)不同,Spc函數(shù)提供了若干空格,其格式為

Spc(n);

【說(shuō)明】

(1)?n為數(shù)值表達(dá)式,其值為一整數(shù),表示在顯示或打印下一個(gè)表達(dá)式之前插入的空格數(shù)。

(2)?Spc函數(shù)與輸出項(xiàng)之間用分號(hào)隔開(kāi)。例如:

Print"姓名";Spc(5);"性別";Spc(5);"年齡"

(3)當(dāng)Print方法與不同大小的字體一起使用時(shí),使用Spc函數(shù)打印的空格字符的寬度總是等于選用字體內(nèi)以磅數(shù)為單位的所有字符的平均寬度。

(4)?Spc函數(shù)與Tab函數(shù)的作用類似,可以互相代替。但應(yīng)注意,Tab函數(shù)從對(duì)象的左端開(kāi)始計(jì)數(shù),而Spc函數(shù)只表示兩個(gè)輸出項(xiàng)之間的間隔。

3.理解位置屬性和字體屬性

要精確地把文本輸出到窗體、圖片框或打印頁(yè)上,可以使用位置屬性CurrentX和CurrentY。這兩個(gè)屬性分別表示當(dāng)前輸出位置的橫坐標(biāo)與縱坐標(biāo)。

如果要控制所顯示或打印文本的大小和外觀,可以用VB中的字體屬性,各字體屬性及其名稱見(jiàn)表3-1。

【課堂演練】

【實(shí)例3-4】如圖3.6所示,按某字體大小,把字符串“五光十色”輸出到窗體上,坐標(biāo)位置為(800,600)。圖3.6CurrentX和CurrentY實(shí)例

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

(1)建立用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,增加一個(gè)命令按鈕Command1,如圖3.7(a)所示。

(2)設(shè)置對(duì)象屬性。將命令按鈕Command1的Caption(標(biāo)題)屬性改為“顯示”,設(shè)置屬性后的界面如圖3.7(b)所示。圖3.7建立用戶界面并設(shè)置對(duì)象屬性

(3)編寫事件代碼。“顯示”命令按鈕Command1的Click事件代碼如下:

PrivateSubCommand1_Click()

DimaAsString

FontName=“隸書” ‘設(shè)置輸出文本的字體

FontSize=18 ’設(shè)置輸出文本的字號(hào)

a="五光十色"

CurrentX=800 ‘設(shè)置輸出的水平位置

CurrentY=600’設(shè)置輸出的垂直位置

Show

Printa‘輸出文本

EndSub

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

4.掌握清除方法Cls的用法

使用Cls方法可以清除Form(窗體)或PictureBox(圖片框)中由Print方法或圖形方法在運(yùn)行時(shí)所生成的文本或圖形,清除后的區(qū)域以背景色填充。Cls方法的語(yǔ)法格式為

[〈對(duì)象名〉.]Cls

【說(shuō)明】

(1)〈對(duì)象名〉可以是Form或PictureBox。如果省略〈對(duì)象名〉,則清除窗體上由Print方法或圖形方法在運(yùn)行時(shí)所生成的文本或圖形。

(2)設(shè)計(jì)時(shí)使用Picture屬性設(shè)置的背景位圖和放置的控件不受Cls方法影響。

【課堂演練】

【實(shí)例3-5】使用Cls方法清除【實(shí)例3-4】窗體中由Print方法所生成的文本,如圖3.8所示。圖3.8Cls方法示例

【實(shí)現(xiàn)方法】

只需在【實(shí)例3-4】的代碼中增加一個(gè)命令按鈕Command2,將Caption屬性改為“清除”,并編寫其Click事件代碼即可:

PrivateSubCommand2_Click()

Cls

EndSub

5.使用標(biāo)簽控件進(jìn)行輸出操作

標(biāo)簽(Label)主要是用來(lái)顯示(輸出)文本信息的,不能作為輸入信息的界面。也就是說(shuō),標(biāo)簽控件的內(nèi)容只能用Caption屬性來(lái)設(shè)置或修改,不能直接編輯。它是VB中最常用的輸出文本信息的工具,完全可以取代Print方法。標(biāo)簽控件的常用屬性有以下幾種:

(1)?Caption屬性。該屬性用于在標(biāo)簽中顯示文本。默認(rèn)情況下,Caption是Label控件中惟一的可見(jiàn)部分。

(2)?BorderStyle(邊框樣式)屬性。該屬性用來(lái)設(shè)置標(biāo)簽的邊框。該屬性可以取兩個(gè)值,即0或1。在默認(rèn)情況下,該屬性值為0,標(biāo)簽無(wú)邊框。如果把BorderStyle屬性設(shè)置成1,那么Label就有了一個(gè)邊框。

(3)其他外觀屬性。可以通過(guò)設(shè)置標(biāo)簽Label的BackColor(背景色)、ForeColor(前景色)和Font(字體)等屬性來(lái)改變Label的外觀。

【課堂演練】

【實(shí)例3-6】如圖3.9所示,使標(biāo)簽控件具有邊框,然后再修改標(biāo)簽屬性為無(wú)邊框。

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

(1)建立用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,增加一個(gè)命令按鈕Command1、兩個(gè)標(biāo)簽Label1和Label2,如圖3.9(左)所示。

(2)設(shè)置對(duì)象屬性。分別設(shè)置對(duì)象的屬性,見(jiàn)表3-2。設(shè)置后的界面如圖3.9(中)所示。圖3.9有邊框和無(wú)邊框的標(biāo)簽控件

(3)編寫事件代碼?!皢螕簟泵畎粹oCommand1的Click事件代碼如下:

PrivateSubCommand1_Click()

Label1.Caption=“健康、快樂(lè)和幸?!薄淖僉abel1的標(biāo)題內(nèi)容

Label2.Caption=“永遠(yuǎn)與您相伴”’改變Label2的標(biāo)題內(nèi)容

Label2.Alignment=2‘Label2的內(nèi)容居中顯示

Label2.BorderStyle=0’將Label2的邊框樣式改為無(wú)邊框

EndSub

(4)運(yùn)行程序,效果如圖3.9(右)所示。

6.掌握賦值語(yǔ)句Let的用法

在前面的例子中,我們已經(jīng)在代碼中使用了賦值語(yǔ)句。它的作用是將指定的值賦給某個(gè)變量或?qū)ο蟮哪硞€(gè)屬性。

賦值語(yǔ)句的語(yǔ)法格式為

[Let]〈名稱〉=〈表達(dá)式〉

【說(shuō)明】

(1)?Let表示賦值,通常省略。

(2)〈名稱〉是變量或?qū)傩缘拿Q。

(3)〈表達(dá)式〉可以是算術(shù)型表達(dá)式、字符串型表達(dá)式、關(guān)系型表達(dá)式或邏輯型表達(dá)式,其類型應(yīng)與變量名的類型一致,即同時(shí)為數(shù)值型或同時(shí)為字符型,否則會(huì)出現(xiàn)“類型不匹配”的錯(cuò)誤。當(dāng)同時(shí)為數(shù)值型但有不同的精度時(shí),強(qiáng)制轉(zhuǎn)換成“=”左邊的精度。

(4)賦值語(yǔ)句是先計(jì)算〈表達(dá)式〉,再賦值。

【課堂演練】

【實(shí)例3-7】設(shè)計(jì)程序,實(shí)現(xiàn)交換兩變量的值,如圖3.10所示。圖3.10交換變量值前后

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

(1)問(wèn)題分析。將兩個(gè)不同的變量假設(shè)為兩個(gè)瓶子A和B,其中分別裝有不同顏色的液體,現(xiàn)在需交換瓶子中的液體??梢赃@樣來(lái)做:另取一個(gè)瓶子C,先將瓶A中的液體倒入瓶C中,再將瓶B中的液體倒入瓶A中,最后將瓶C中的液體倒入瓶B中。

(2)建立用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,增加一個(gè)命令按鈕Command1、四個(gè)標(biāo)簽Label1~Label4,如圖3.11(a)所示。

(3)設(shè)置對(duì)象屬性,見(jiàn)表3-3。設(shè)置屬性后的界面如圖3.11(b)所示。圖3.11建立界面與設(shè)置屬性

(4)編寫事件代碼。“交換兩變量的值”命令按鈕Command1的Click事件代碼如下:

PrivateSubCommand1_Click()

c=Label2.Caption

Label2.Caption=Label4.Caption

Label4.Caption=c

EndSub

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

7.掌握卸載對(duì)象語(yǔ)句Unload的用法

當(dāng)要結(jié)束應(yīng)用程序,或從內(nèi)存中卸載窗體,或從內(nèi)存中

卸載某些控件時(shí),可以使用Unload語(yǔ)句。Unload語(yǔ)句的語(yǔ)法格式為

Unload〈對(duì)象名〉

【說(shuō)明】

(1)〈對(duì)象名〉是要卸載的窗體對(duì)象或控件的名稱,可以用Me來(lái)表示當(dāng)前所在的窗體對(duì)象。

(2)在卸載窗體前,會(huì)發(fā)生QueryUnload(窗體隊(duì)列關(guān)閉)事件,然后是Unload(卸載)事件。在其中任一事件過(guò)程代碼中設(shè)置Cancel參數(shù)為True可防止窗體被卸載。

【課堂演練】

【實(shí)例3-8】在【實(shí)例3-7】中增加“關(guān)閉”命令按鈕,關(guān)閉窗體。程序界面如圖3.12所示。圖3.12關(guān)閉窗體

【實(shí)現(xiàn)方法】

在【實(shí)例3-7】中增加一個(gè)命令按鈕Command2,并將其Caption屬性改為“關(guān)閉”,編寫Command2的Click事件代碼如下:

PrivateSubCommand2_Click()

UnloadMe‘Me表示按鈕所在的窗體對(duì)象

EndSub

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

8.掌握注釋語(yǔ)句Rem的用法

為了提高程序的可讀性,通常應(yīng)在程序的適當(dāng)位置加上一些注釋。注釋語(yǔ)句用來(lái)在程序中包含注釋,語(yǔ)法格式為

Rem〈注釋內(nèi)容〉

'〈注釋內(nèi)容〉

【說(shuō)明】

(1)〈注釋內(nèi)容〉指要包括的任何注釋文本。在Rem關(guān)鍵字與注釋內(nèi)容之間要加一個(gè)空格??梢杂靡粋€(gè)英文單引號(hào)“‘”來(lái)代替Rem關(guān)鍵字。

(2)如果在其他語(yǔ)句行后使用Rem關(guān)鍵字,則必須用冒號(hào)“:”與前面語(yǔ)句隔開(kāi)。若使用英文單引號(hào),則在其他語(yǔ)句行后不必加冒號(hào)。例如:

c=Label2.Caption’c為臨時(shí)變量

Label2.Caption=Label4.Caption :Rem將Label4的Caption屬性值賦給Label2任務(wù)3.2利用文本框輸入數(shù)據(jù)

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

如果程序沒(méi)有輸入操作,必然缺乏程序的靈活性。在VB中,允許用戶輸入文本信息的最直接的方法是使用文本框。

本任務(wù)學(xué)習(xí)利用文本框輸入數(shù)據(jù)的方法,焦點(diǎn)、鍵序的設(shè)置方法以及框架控件的使用等。學(xué)習(xí)目標(biāo)

(1)能熟練利用文本框輸入數(shù)據(jù)。

(2)會(huì)設(shè)置焦點(diǎn),改變鍵序。

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

1.熟知文本框控件的常用屬性

文本框的常用屬性有以下幾個(gè):

(1)?Text屬性。Text屬性表示文本框中包含的文本內(nèi)容。

(2)?Locked屬性。Locked屬性決定控件是否可編輯。Locked屬性的值為True時(shí),文本框的內(nèi)容不可編輯;為False時(shí),可編輯。默認(rèn)為False。

(3)?MultiLine(多行)屬性。若將控件的MultiLine屬性設(shè)置為True,則可以輸入多行文本,并且文本的內(nèi)容可多達(dá)32KB。默認(rèn)為False。

(4)?ScrollBars(滾動(dòng)條)屬性。ScrollBars屬性決定文本框中是否顯示滾動(dòng)條及滾動(dòng)條的顯示形式。默認(rèn)為不顯示。

(5)?PassWordChar屬性。PassWordChar屬性指定顯示在文本框中的替代符,如一串“*”號(hào)等,主要用于口令的輸入。如果MultiLine屬性被設(shè)為True,則PassWordChar屬性不起作用。

(6)?MaxLength屬性。MaxLength屬性指定顯示在文本框中的字符數(shù),超出部分不接收,并同時(shí)發(fā)出嘟嘟聲。

2.利用文本框控件顯示文本

文本框中顯示的文本受Text屬性控制。Text屬性可以用以下三種方式設(shè)置:

(1)設(shè)計(jì)時(shí)在屬性窗口中進(jìn)行。

(2)編程時(shí)通過(guò)代碼設(shè)置。

(3)在運(yùn)行時(shí)由用戶輸入。

通過(guò)讀Text屬性能在運(yùn)行時(shí)檢索文本框的當(dāng)前內(nèi)容。

【課堂演練】

【實(shí)例3-9】輸入球體的半徑,計(jì)算并輸出球體的體積和表面積,如圖3.13所示。圖3.13計(jì)算球的體積和表面積

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

(1)問(wèn)題分析。設(shè)球的半徑為r,球體積和球表面積分別為v和f,依題意可得計(jì)算公式:

(2)建立應(yīng)用程序用戶界面。選擇“新建”工程,進(jìn)入窗體設(shè)計(jì)器,增加兩個(gè)命令按鈕Command1和Command2、三個(gè)

標(biāo)簽Label1~Label3和三個(gè)文本框Text1~Text3,如圖3.14(a)所示。圖3.14建立界面與設(shè)置屬性

(3)設(shè)置對(duì)象屬性,如表3-4所示。設(shè)置屬性后的界面如圖3.14(b)所示。

(4)編寫事件代碼,命令按鈕Command1的Click事件代碼為

PrivateSubCommand1_Click()

DimrAsSingle,vAsSingle,fAsSingle

Constpi=3.14159‘定義符號(hào)常量

r=Val(Text1.Text)’將文本框中的文本轉(zhuǎn)換為數(shù)值型數(shù)據(jù)

v=4/3*pi*r^3'計(jì)算球的體積

f=4*pi*r^2‘計(jì)算球的表面積

Text2.Text=v’輸出球的體積

Text3.Text=f‘輸出球的表面積

EndSub

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

PrivateSubCommand2_Click()

UnloadMe

EndSub

3.掌握多行文本框的使用

在默認(rèn)情況下,文本框只能顯示單行文本,且不顯示滾動(dòng)條。如果文本長(zhǎng)度超出可用空間,則只能顯示部分文本。

如果需要文本框顯示多行文本,可以修改文本框的MultiLine和ScrollBars屬性,但是這兩種屬性只能在屬性窗口中修改。

1)?MultiLine屬性

當(dāng)MultiLine屬性為True時(shí),文本框中可以輸入或顯示多行文本,同時(shí)具有文字處理器的自動(dòng)換行功能,即輸入的文本超出文本框?qū)挾葧r(shí),會(huì)自動(dòng)換行。按Ctrl+Enter鍵可插入一空行。

2)?ScrollBars屬性

當(dāng)MultiLine屬性為True時(shí),ScrollBars屬性才有效。ScrollBars屬性值如下。

●0-None:無(wú)滾動(dòng)條。

●1-Horizontal:加水平滾動(dòng)條。

●2-Vertical:加垂直滾動(dòng)條。

●3-Both:同時(shí)加水平和垂直滾動(dòng)條。

ScrollBars屬性的默認(rèn)值為0-None。

如果沒(méi)有水平方向的滾動(dòng)條,文本框中的文本會(huì)自動(dòng)按字換行。當(dāng)加入了水平滾動(dòng)條以后,文本框內(nèi)的自動(dòng)換行功能會(huì)自動(dòng)消失,只有按Enter鍵才能換行。

【課堂演練】

【實(shí)例3-10】修改文本框的MultiLine和ScrollBars屬性。

【實(shí)現(xiàn)方法】

建立4個(gè)文本框,它們的有關(guān)屬性見(jiàn)表3-5。修改屬性值后的結(jié)果如圖3.15所示。

4.理解焦點(diǎn)的概念

在了解VB控件之前,首先要了解與控件緊密相關(guān)的焦點(diǎn)概念。焦點(diǎn)是控件接收用戶鼠標(biāo)或鍵盤輸入的能力,當(dāng)對(duì)象具有焦點(diǎn)時(shí),可接收用戶的輸入。在Windows環(huán)境中,任一時(shí)刻都可以同時(shí)運(yùn)行多個(gè)程序,但只有具有焦點(diǎn)的應(yīng)用程序才有活動(dòng)標(biāo)題欄(藍(lán)色),也只有具有焦點(diǎn)的程序才能接收用戶輸入(鍵盤或鼠標(biāo)的動(dòng)作)。

5.利用SetFocus方法設(shè)置焦點(diǎn)

當(dāng)控件的Visible和Enabled屬性值為True時(shí),控件才能得到焦點(diǎn)。Visible屬性決定了對(duì)象在屏幕上是否可見(jiàn);Enabled屬性允許對(duì)象響應(yīng)由用戶產(chǎn)生的事件,如鍵盤和鼠標(biāo)事件。

但是,并非所有控件都具有得到焦點(diǎn)的能力,如Frame、Lable、Menu、Line、Image、Timer等控件均不能得到焦點(diǎn)。而且只有不包含任何可得到焦點(diǎn)的控件的窗體,才能接收

焦點(diǎn)。當(dāng)對(duì)象得到或失去焦點(diǎn)時(shí),會(huì)產(chǎn)生GotFocus或LostFocus事件。GotFocus事件發(fā)生在對(duì)象得到焦點(diǎn)時(shí);LostFocus事件發(fā)生在失去焦點(diǎn)時(shí)。

使用以下方法可以將焦點(diǎn)賦予對(duì)象:

運(yùn)行時(shí)選擇對(duì)象。

運(yùn)行時(shí)用快捷鍵選擇對(duì)象。

在代碼中使用SetFocus方法,其格式為

〈對(duì)象〉.SetFocus

6.掌握程序運(yùn)行時(shí)改變焦點(diǎn)的方法

程序運(yùn)行時(shí),用戶可以通過(guò)下列方法之一改變焦點(diǎn):

用鼠標(biāo)單擊對(duì)象。

按Tab鍵或Shift+Tab鍵在當(dāng)前窗體的各對(duì)象之間巡回移動(dòng)焦點(diǎn)。

按熱鍵選擇對(duì)象。

7.控制Tab鍵序

所謂Tab鍵序,是指當(dāng)用戶按下Tab鍵時(shí),焦點(diǎn)在控件間移動(dòng)的順序。

每個(gè)窗體都有自己的Tab鍵序。默認(rèn)狀態(tài)下,Tab鍵序與建立這些控件的順序相同。例如,在窗體上先后建立3個(gè)命令按鈕C1、C2和C3,程序啟動(dòng)時(shí)C1首先獲得焦點(diǎn)。當(dāng)用戶按下Tab鍵時(shí),焦點(diǎn)依次向C2、C3轉(zhuǎn)移,如此這般往復(fù)循環(huán)。

(1)?TabIndex屬性。TabIndex屬性決定控件接收焦點(diǎn)的順序。當(dāng)在窗體上畫出第一個(gè)控件時(shí),VB分配給控件的TabIndex屬性默認(rèn)值為0,第二個(gè)為1,第三個(gè)為2……依次類推。

用戶在程序運(yùn)行中按Tab鍵時(shí),焦點(diǎn)將根據(jù)TabIndex屬性值所指定的焦點(diǎn)移動(dòng)順序移到下一控件。

如果希望更改Tab鍵序,如希望焦點(diǎn)直接從C1轉(zhuǎn)移到C3,可以通過(guò)設(shè)置TabIndex屬性來(lái)改變一個(gè)控件的Tab鍵序。

(2)?TabStop屬性。TabStop屬性決定焦點(diǎn)是否能夠停在該控件上。通常,運(yùn)行時(shí)按Tab鍵能選擇鍵序中的每一控件。將控件的TabStop屬性設(shè)為False,便可將此控件從鍵序中刪除,但仍然保持它在實(shí)際Tab鍵序中的位置,只不過(guò)在按Tab鍵時(shí)這個(gè)控件將被跳過(guò)。

8.掌握框架控件的用法

框架(Frame)控件是一種容器控件。在框架控件內(nèi)的控件可以隨框架一起移動(dòng),并且受框架控件某些屬性(Visible、Enabled等)的控制。

在設(shè)計(jì)界面時(shí),經(jīng)常使用框架控件對(duì)其他控件進(jìn)行分組,以使界面更清晰。在一般情況下,不需要響應(yīng)框架控件的事件。在框架控件中,需要修改的屬性一般為Name、Caption或Font。

使用框架控件將其他控件分組的方法有兩個(gè):

先畫出框架控件并激活它,再加入其中的控件,這樣可使框架控件與其上的控件一起移動(dòng)。

如果要用框架控件將現(xiàn)有的控件分組,可先選定所有控件,將它們剪切到剪貼板上,然后選定框架控件并將剪貼板上的控件粘貼到Frame控件上。

【課堂演練】

【實(shí)例3-11】如圖3.16所示,在文本框中輸入時(shí)數(shù)、分?jǐn)?shù)、秒數(shù),并轉(zhuǎn)化成秒數(shù),然后輸出。圖3.16計(jì)算秒數(shù)

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

(1)問(wèn)題分析。設(shè)通過(guò)文本框控件輸入的時(shí)數(shù)為h,分?jǐn)?shù)為m,秒數(shù)為s,則利用公式:

x=h×3600+m×60+s

可以計(jì)算合計(jì)秒數(shù)x。

(2)建立用戶界面。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,在窗體中增加一個(gè)框架控件Frame1、一個(gè)命令按鈕Command1和一個(gè)標(biāo)簽Label1。在Frame1上添加三個(gè)文本框控件Text1~Text3,如圖3.17所示。圖3.17用戶界面

(3)設(shè)置對(duì)象屬性,見(jiàn)表3-6。設(shè)置屬性后的窗體如圖3.16所示。

(4)編寫事件代碼?!坝?jì)算”命令按鈕Command1的Click事件代碼如下:

PrivateSubCommand1_Click()

DimhAsInteger,mAsInteger,sAsInteger

‘定義時(shí)、分、秒的數(shù)據(jù)類型為整型

DimxAsLong

h=Val(Text1.Text) '通過(guò)Text1輸入時(shí)數(shù)

m=Val(Text2.Text) ‘通過(guò)Text2輸入分?jǐn)?shù)

s=Val(Text3.Text) ’通過(guò)Text3輸入秒數(shù)

x=h*3600+m*60+s ‘計(jì)算秒數(shù)

Label1.Caption=“共計(jì)秒數(shù)”&Str(x)&“秒”

’輸出到Label1

EndSub

(5)運(yùn)行程序,結(jié)果如圖3.16所示。任務(wù)3.3使用對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)輸入和輸出

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

除了前面學(xué)習(xí)的數(shù)據(jù)輸入和輸出方法外,在圖形用戶界

面中,對(duì)話框(DialogBox)也是程序與用戶交互的另一種主要途徑。

對(duì)話框分為兩種:一是輸入框(InputBox),可以輸入信息;二是消息框(MsgBox),可以顯示信息,也就是輸出信息。

本任務(wù)學(xué)習(xí)使用對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)輸入和輸出的方法。學(xué)習(xí)目標(biāo)

(1)能熟練使用輸入框(InputBox)輸入數(shù)據(jù)。

(2)能熟練使用消息框(MsgBox)輸出數(shù)據(jù)。任務(wù)實(shí)施

1.掌握輸入框(InputBox)函數(shù)的使用方法

輸入框函數(shù)用來(lái)顯示一個(gè)能接受用戶輸入數(shù)據(jù)的對(duì)話框,并返回用戶在對(duì)話框中輸入的信息。

輸入框的語(yǔ)法格式為

〈變量〉=InputBox(〈信息內(nèi)容〉[,〈對(duì)話框標(biāo)題〉][,〈默認(rèn)內(nèi)容〉])

【說(shuō)明】

(1)〈信息內(nèi)容〉為在對(duì)話框中出現(xiàn)的文本。在〈信息內(nèi)容〉中使用硬回車符CHR(13)可以使文本換行。對(duì)話框的高度和寬度隨著〈信息內(nèi)容〉的增加而增加,最多可有1024個(gè)字符。

(2)〈對(duì)話框標(biāo)題〉用來(lái)指定對(duì)話框的標(biāo)題。

(3)〈默認(rèn)內(nèi)容〉可以指定輸入框的文本框中顯示的默認(rèn)文本。若用戶單擊“確定”按鈕,則文本框中的文本將返回到〈變量〉中;若用戶單擊“取消”按鈕,則返回的將是一個(gè)0長(zhǎng)度的字符串。

(4)當(dāng)省略了某些可選項(xiàng)時(shí),其間的逗號(hào)分隔符不可省略。

【課堂演練】

【實(shí)例3-12】“雞兔同籠”問(wèn)題。雞有2只腳,兔有4只腳,如果已知雞和兔的總頭數(shù)為h,總腳數(shù)為f,問(wèn)籠中雞和兔各有多少只?

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

(1)問(wèn)題分析。設(shè)籠中有雞x只,兔y只,由條件可得方

程組:解方程組得

(2)建立用戶界面并設(shè)置對(duì)象屬性。新建一個(gè)工程,進(jìn)入窗體設(shè)計(jì)器,首先增加三個(gè)標(biāo)簽Label1~label3和一個(gè)命令按鈕Command1。其屬性設(shè)置參見(jiàn)圖3.18。圖3.18“雞兔同籠”問(wèn)題

(3)編寫事件代碼?!拜斎雋和

溫馨提示

  • 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)論