Visual Basic知識(shí)點(diǎn)與習(xí)題_第1頁(yè)
Visual Basic知識(shí)點(diǎn)與習(xí)題_第2頁(yè)
Visual Basic知識(shí)點(diǎn)與習(xí)題_第3頁(yè)
Visual Basic知識(shí)點(diǎn)與習(xí)題_第4頁(yè)
Visual Basic知識(shí)點(diǎn)與習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩75頁(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)介

第一章VisualBasic導(dǎo)論

【學(xué)習(xí)目的和要求】

1.掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本概念。

2.掌握建立VisualBasic應(yīng)用程序的一般步驟和方法。

3.熟悉VisualBasic的集成開(kāi)發(fā)環(huán)境。

【學(xué)習(xí)要點(diǎn)】

一.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法基礎(chǔ)

1.關(guān)于VisualBasic

面向?qū)ο蟪绦蛟O(shè)計(jì)到底是什么含義,我們從VisualBasic的名字上來(lái)看,就可以得到許

多關(guān)于這一方面的信息。首先是“Visual",“Visual”一詞在詞典上的含義是“看的、視覺(jué)

的、用于看的”,引申到計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域中就變?yōu)椤翱梢暬某绦蛟O(shè)計(jì)",Microsoft公

司的其他冠以Visual的產(chǎn)品大都含有這個(gè)意思,例如VisualFoxPro、VisualC++、VisualJ++

等等。那么什么是“可視化的程序設(shè)計(jì)”呢?它指的是一種開(kāi)發(fā)圖形用戶界面(GraphicalUser

Interface、簡(jiǎn)稱GUI)的方法,使用這種程序設(shè)計(jì)方法,程序員無(wú)須編寫(xiě)大量代碼去描述

界面元素的外觀和位置,只要把預(yù)先建立的界面元素(例如命令按鈕、列表框等)用鼠標(biāo)拖

放到屏幕上適當(dāng)?shù)奈恢蒙霞纯伞H绻脩羰褂眠^(guò)諸如“計(jì)算器”之類的應(yīng)用程序,那么他實(shí)

際上已經(jīng)掌握了創(chuàng)建用戶界面的必要技巧。

圖1T“計(jì)算器”應(yīng)用程序的界面

圖1-1是WindowsXP操作系統(tǒng)自帶的一個(gè)應(yīng)用程序“計(jì)算器”的界面。在VisualBasic

集成環(huán)境中,用戶可以不用編寫(xiě)一行程序,僅僅使用鼠標(biāo)就可以創(chuàng)建一個(gè)如上圖所示的

Windows應(yīng)用程序的界面,當(dāng)然僅有界面的這個(gè)程序還不會(huì)對(duì)用戶做的任何選擇做出反應(yīng),

如果真得要使程序具有“計(jì)算器”的能力,我們就需要用到第二個(gè)單詞——“Basic”了。

等我們學(xué)完本門(mén)課程,完全有能力開(kāi)發(fā)出這樣一個(gè)實(shí)用的小程序。

即使計(jì)算機(jī)技術(shù)發(fā)展到今天這種局面,在計(jì)算機(jī)領(lǐng)域里單詞“Basic”也仍然里如雷貫

耳、婦孺皆知,這是因?yàn)锽asic語(yǔ)言是迄今為止在計(jì)算機(jī)技術(shù)發(fā)展歷史上應(yīng)用最為廣泛的一

種語(yǔ)言。在全世界、會(huì)使用Basic語(yǔ)言編程的人員數(shù)以百萬(wàn)計(jì),就連Microsoft公司的總裁

Gates在剛出道時(shí)也曾是一個(gè)Basic程序員(也許正是因?yàn)檫@一點(diǎn),Gates才會(huì)對(duì)Basic語(yǔ)言

情有獨(dú)鐘,花大力氣去發(fā)展VisualBasic)。僅此一點(diǎn),就注定了VisualBasic會(huì)擁有龐大的

用戶群。

VisualBasic在原有BASIC語(yǔ)言的基礎(chǔ)上進(jìn)一步發(fā)展,至今已經(jīng)包含了數(shù)百條語(yǔ)句、函

數(shù)及關(guān)鍵詞,其中很多和WindowsGUI有直接關(guān)系。專業(yè)人員可以用VisualBasic實(shí)現(xiàn)其他

任何Windows編程語(yǔ)言的功能,而初學(xué)者只要掌握幾個(gè)關(guān)鍵詞就可以建立實(shí)用的應(yīng)用程序。

所以,Visual和Basic這兩個(gè)單詞連在一起,就可以從中得到關(guān)于它的一個(gè)簡(jiǎn)單的概念一

使用Basic語(yǔ)言進(jìn)行可視化程序設(shè)計(jì)的開(kāi)發(fā)工具。VisualBasic自從1991年推出后,因?yàn)榻?/p>

面友好、簡(jiǎn)單易用,因而得到了迅速推廣,目前比較流行使用的版本是VisualBasic6.0。使

用VisualBasic不僅可以方便地開(kāi)發(fā)一般的Windows應(yīng)用程序,進(jìn)行多媒體和數(shù)據(jù)庫(kù)應(yīng)用系

統(tǒng)的開(kāi)發(fā)也同樣可以得心應(yīng)手。本書(shū)后面我們將VisualBasic統(tǒng)一簡(jiǎn)稱為VB。

2.面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念

1)對(duì)象(Object)

在新一代Windows程序開(kāi)發(fā)工具中,幾乎都具有面向?qū)ο螅∣bjectOriented)特性,Visual

Basic自然也不例外。在用VB開(kāi)發(fā)應(yīng)用程序的過(guò)程中,事實(shí)上就是圍繞著對(duì)象來(lái)進(jìn)行,那

么到底什么是對(duì)象呢?

可以把對(duì)象想象成日常生活中的各種物體,例如:書(shū)籍、汽車(chē)等,這些都可以稱為對(duì)象。

以汽車(chē)來(lái)說(shuō)吧,每輛汽車(chē)本身是?個(gè)對(duì)象,而汽車(chē)又是由許多對(duì)象組成的,例如:輪胎、引

擎、車(chē)燈、方向盤(pán)等,每一個(gè)零件都是個(gè)對(duì)象,對(duì)象中還可以包含其它對(duì)象。與汽車(chē)的概

念相類似,在VB程序中,窗體(Form)、命令按鈕(CommandButton)、歹U表框(ListBox)

等都是對(duì)象。在程序設(shè)計(jì)的過(guò)程中,這些對(duì)象就是程序的主角。如圖1-2所示。

窗體對(duì)象

命令按鈕對(duì)象

列表框?qū)ο?/p>

圖1-2窗體、命令按鈕、列表框?qū)ο?/p>

2)屬性(Property)

每一個(gè)對(duì)象都有其相應(yīng)的特性,在計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言中被稱作屬性。仍然以汽車(chē)來(lái)說(shuō)

吧,與它相關(guān)的屬性數(shù)據(jù)有:顏色、長(zhǎng)度、寬度、馬力、是否有安全氣囊,乘坐人數(shù)等。記

錄這些屬性數(shù)據(jù)的地方就叫做屬性欄。屬性欄中所記錄的屬性數(shù)據(jù)叫做屬性值。我們都知道,

不同款式的汽車(chē)會(huì)有不同的長(zhǎng)度、寬度,也就是說(shuō),同一類對(duì)象雖然擁有相同的屬性欄,但

其屬性值卻有可能不同。例如兩輛汽車(chē)都有顏色的屬性,其中一輛是紅色,另外一輛是黑色,

那么兩輛汽車(chē)對(duì)應(yīng)顏色這個(gè)屬性的屬性值分別就是“紅色”和“黑色”。屬性名和屬性值的

概念如圖1-3所示。

屬性名

屬性值

圖1-3屬性窗口、屬性名和屬性值

3)類(Class)

我們剛剛提到“同一類對(duì)象擁有相同的屬性欄”,其實(shí)更加準(zhǔn)確的說(shuō)法應(yīng)該是“同一類

對(duì)象的大部分屬性欄相同二為什么這樣說(shuō)呢?例如,拿般的車(chē)子與坦克車(chē)來(lái)比較,雖然

都有車(chē)長(zhǎng)、車(chē)寬的屬性欄,但是坦克車(chē)就會(huì)多出一些記錄大炮口徑、履帶形式的屬性欄。如

果兩個(gè)對(duì)象間的屬性欄差異太大,那么,它們根本不能算是同一類對(duì)象。例如汽車(chē)和樹(shù)木,

它們就不能算是同一類對(duì)象,這些形形色色的對(duì)象分別屬于不同的種類,這就是所謂的類。

還有一個(gè)典型的例子,那就是人類,每一個(gè)人都是一個(gè)具體的對(duì)象,所有人共同構(gòu)成了

人類。顯而易見(jiàn),對(duì)象應(yīng)當(dāng)是類的一個(gè)實(shí)例。

4)方法(Method)

對(duì)象除了具有屬性之外,還包含了一些控制對(duì)象的動(dòng)作或功能,稱作對(duì)象的方法。所謂

方法,指的是控制對(duì)象動(dòng)作行為的方式。它是對(duì)象本身內(nèi)含的函數(shù)或過(guò)程,它也是一個(gè)動(dòng)作,

是一個(gè)簡(jiǎn)單的不必知道細(xì)節(jié)的無(wú)法改變的事件,但不被稱作事件;同樣,方法也不是隨意的,

一些對(duì)象有一些特定的方法。在VB中方法的調(diào)用形式是:

對(duì)象名.方法名

以汽車(chē)為例,假設(shè)車(chē)子這個(gè)對(duì)象中共有五個(gè)動(dòng)作,分別是放開(kāi)手制動(dòng)、踩油門(mén)、踩離合

器、放開(kāi)離合器、掛檔。如果我們要車(chē)子從靜止?fàn)顟B(tài)啟動(dòng),就可以組合這五個(gè)動(dòng)作:

A.放開(kāi)手制動(dòng)

B.踩離合器

C.掛檔

D.放開(kāi)離合器

E.踩油門(mén)

這樣,車(chē)子就能順利啟動(dòng)。這五個(gè)動(dòng)作都是車(chē)子這個(gè)對(duì)象所提供的功能,以程序設(shè)計(jì)的

專業(yè)術(shù)語(yǔ)來(lái)說(shuō),這就是對(duì)象所提供的方法。方法是用來(lái)控制對(duì)象操作的內(nèi)部程序。方法如同

工具一樣,設(shè)計(jì)者借助它們用程序來(lái)控制對(duì)象。

現(xiàn)在,已經(jīng)對(duì)類、對(duì)象、屬性、方法等名詞有了基本的認(rèn)識(shí),我們?cè)賮?lái)看看在VB中的

情形。在VB中提供了很多類和對(duì)象,例如:Form、命令按鈕、文本框、滾動(dòng)條等,它們

各自擁有許多的屬性和方法。我們可以在這些對(duì)象的屬性欄中填入屬性值,也可以運(yùn)用這些

對(duì)象的方法來(lái)控制對(duì)象,這就是VB程序設(shè)計(jì)的基礎(chǔ)。

5)事件(Event)

對(duì)某個(gè)對(duì)象來(lái)說(shuō),事件就是發(fā)生在該對(duì)象上.的事情。事件的發(fā)生不是隨意的,某些事件

僅發(fā)生在某些對(duì)象上。VB中提供了很多對(duì)象,每種對(duì)象會(huì)響應(yīng)相關(guān)的事件,供程序設(shè)計(jì)者

利用它們?cè)O(shè)計(jì)出應(yīng)用程序。例如,命令按鈕就是一個(gè)對(duì)象。在按鈕上最常發(fā)生的事情就是被

“按一下”,這個(gè)“按一下”就是按鈕對(duì)象的一個(gè)事件。在按鈕上面用鼠標(biāo)按一下,在Windows

環(huán)境下的說(shuō)法就叫做單擊,于是我們就說(shuō)按鈕有一個(gè)Click(單擊)事件。

6)事件過(guò)程(EventProcedure)

當(dāng)在對(duì)象上發(fā)生了某個(gè)事件后,我們必須想辦法來(lái)處理這個(gè)事件,而處理的步驟就是事

件過(guò)程。事件過(guò)程是針對(duì)事件而來(lái)的,而事件過(guò)程中的處理步驟在VB程序設(shè)計(jì)中就是所謂

的程序代碼。換句話說(shuō),VB程序設(shè)計(jì)者的主要工作,就是為對(duì)象編寫(xiě)事件過(guò)程中的程序代

碼。

對(duì)于每?個(gè)VB所提供的對(duì)象,都已經(jīng)設(shè)定了該對(duì)象所能夠響應(yīng)的事件,而每一個(gè)事件

都會(huì)有一個(gè)對(duì)應(yīng)的空事件過(guò)程(也就是還沒(méi)有規(guī)定如何處理該事件的空程序)。在編寫(xiě)程序

時(shí),我們并不需要把對(duì)象所有的事件過(guò)程都填滿,只要在需要響應(yīng)的事件過(guò)程中填入相應(yīng)的

處理代碼就可以了。例如:對(duì)于一個(gè)窗體對(duì)象而言,既有Click(單擊)事件也有Dblclick

(雙擊)事件,但是在某個(gè)具體應(yīng)用程序中,不需要考慮到Dblclick(雙擊)事件,此時(shí)我

們只需要在Click事件過(guò)程中輸入代碼,在Dblclick事件過(guò)程中無(wú)須輸入代碼。如圖1-4所

不。

E工程1-For*l(Code)

圖1-4代碼窗口

當(dāng)對(duì)象上發(fā)生了某一事件,而該事件所對(duì)應(yīng)的事件過(guò)程中沒(méi)有程序代碼(也就是沒(méi)有規(guī)

定處理步驟)時(shí)怎么辦?也沒(méi)有什么關(guān)系,那只不過(guò)代表程序?qū)υ撌录安挥枥頃?huì)”罷了,

也就是不予處理該事件。

7)事件驅(qū)動(dòng)程序設(shè)計(jì)(EventDrivenProgrammingModel)

寫(xiě)完程序后開(kāi)始執(zhí)行時(shí),程序會(huì)先等待某個(gè)事件的發(fā)生,然后再去執(zhí)行處理此事件的事

件過(guò)程。事件過(guò)程要經(jīng)過(guò)事件的觸發(fā)才會(huì)被執(zhí)行,這種動(dòng)作模式就稱為事件驅(qū)動(dòng)程序設(shè)計(jì):

也就是說(shuō),由事件控制著整個(gè)程序的執(zhí)行流程。

當(dāng)事件過(guò)程處理完某一事件后,程序就會(huì)進(jìn)入等待狀態(tài),直到下一個(gè)事件發(fā)生為止。簡(jiǎn)

單來(lái)說(shuō),VB程序的執(zhí)行步驟如下:

A.等待事件的發(fā)生

B.事件發(fā)生時(shí),去執(zhí)行其對(duì)應(yīng)的事件過(guò)程

C.重新開(kāi)始步驟A

如此周而復(fù)始地執(zhí)行,直到程序結(jié)束為止。這就是事件驅(qū)動(dòng)程序設(shè)計(jì)。

二.創(chuàng)建VB應(yīng)用程序的一般步驟

使用可視化集成環(huán)境的開(kāi)發(fā)工具來(lái)編寫(xiě)程序,絕對(duì)不能想到哪里就寫(xiě)到哪里,因?yàn)樗鼈?/p>

跟傳統(tǒng)面向過(guò)程程序語(yǔ)言的結(jié)構(gòu)有很到的不同。我們將用VB開(kāi)發(fā)程序的一般步驟整理如

下,供參考。

編寫(xiě)VB程序的基本步驟:

1.建立基礎(chǔ)結(jié)構(gòu):首先要想象一下程序執(zhí)行后應(yīng)該是什么樣子。此時(shí)不妨用筆和紙簡(jiǎn)

化程序完成后窗口的草圖,并注明一些操作(如按下按鈕)發(fā)生的反應(yīng)、控件彼此間的關(guān)系

等等。

2.組建程序結(jié)構(gòu):在窗體上放置所需的控制元件。所謂窗體就是窗口,而控件就是指

像文本框、列表框、命令按鈕、滾動(dòng)條等各種對(duì)象。

3.調(diào)整元件屬性:在屬性窗口上填寫(xiě)或修改窗體及其它控件的屬性值。

4.為對(duì)象配上相應(yīng)的程序代碼:為所有可能發(fā)生事件的控件編寫(xiě)事件過(guò)程。例如用鼠

標(biāo)在命令按鈕上單擊,對(duì)命令按鈕而言就是發(fā)生了一個(gè)Click事件。發(fā)生事件之后所做的處

理,就是以編寫(xiě)一個(gè)事件過(guò)程來(lái)響應(yīng)。

5.測(cè)試程序執(zhí)行結(jié)果:執(zhí)行、測(cè)試,然后再修改,直到滿意為止。

上面列出的程序設(shè)計(jì)基本步驟,不僅僅適用于VB,其它像Delphi、C++Builder等可視

化程序開(kāi)發(fā)工具也都可以這樣依次進(jìn)行。但是請(qǐng)不要忘記,這只是基本步驟而已,如果還想

要更進(jìn)一步細(xì)分,其實(shí)還包括系統(tǒng)分析、使用手冊(cè)的編寫(xiě)、聯(lián)機(jī)幫助的制作等等。我們特別

要強(qiáng)調(diào)的是,學(xué)好程序設(shè)計(jì)的最佳方法就是“練習(xí)、練習(xí)、再練習(xí)”,絕對(duì)沒(méi)有其它捷徑。

所謂“熟能生巧”,指的是當(dāng)你熟悉了該語(yǔ)言中的各種特性和語(yǔ)法,并且對(duì)各種控件有了基

本印象后,設(shè)計(jì)程序時(shí)才能很快地找到所需的對(duì)象并迅速加以組合,編寫(xiě)相應(yīng)地事件代碼,

設(shè)計(jì)成一個(gè)完整的應(yīng)用程序。

最后,我們總結(jié)一下利用VB開(kāi)發(fā)應(yīng)用程序的基本設(shè)計(jì)機(jī)制就是:改變對(duì)象的屬性、使

用對(duì)象的方法、為對(duì)象事件編寫(xiě)事件過(guò)程。

【相關(guān)習(xí)題】

1.VB是用于開(kāi)發(fā)____環(huán)境下的應(yīng)用程序的工具。

A.DOSB.WindowsC.DOS和WindowsD.UNIX

2.VB是一種面向的程序設(shè)計(jì)語(yǔ)言.

A.過(guò)程B.用戶C.方法D.對(duì)象

3.VB采用了編程機(jī)制。

A.面向過(guò)程B.面向?qū)ο驝.事件驅(qū)動(dòng)D.可視化

4.一只白色的足球被踢進(jìn)球門(mén),則白色、足球、踢、進(jìn)球門(mén)是______。

A.屬性、對(duì)象、方法、事件B.屬性、對(duì)象、事件、方法

C.對(duì)象、屬性、方法、事件D.對(duì)象、屬性、事件、方法

5.能被對(duì)象所識(shí)別的動(dòng)作與對(duì)象可執(zhí)行的活動(dòng)分別稱為對(duì)象的o

A.方法、事件B.事件、方法C.事件、屬性D.過(guò)程、方法

6.在VB中有一行程序代碼:Textl.Text="VisualBasic”,其中的Textl、Text和"Visual

Basic”分別代表o

A.對(duì)象、值、屬性B.對(duì)象、方法、屬性

C.對(duì)象、屬性、值I).屬性、對(duì)象、值

7.以下有關(guān)對(duì)象屬性的說(shuō)法中正確的是。

A.對(duì)象所有的屬性都羅列在屬性窗口列表中

B.不同對(duì)象不可能有同名屬性

C.不同對(duì)象的同名屬性取值一定相同

1).對(duì)象的某些屬性既可以在實(shí)行窗口中設(shè)置,也可以通過(guò)程序代碼設(shè)置或改變

8.以下有關(guān)對(duì)象屬性的說(shuō)法中錯(cuò)誤的是。

A.所有的對(duì)象都具有Name(名稱)屬性

B.只能在執(zhí)行時(shí)設(shè)置或改變的屬性為執(zhí)行時(shí)屬性

C.對(duì)象的某些屬性只能在設(shè)計(jì)時(shí)設(shè)定,不能使用代碼改變

I).Enabled屬性值設(shè)為False的控件對(duì)象在窗體上將不可見(jiàn)

9.在設(shè)計(jì)階段,當(dāng)雙擊窗體上的某個(gè)控件時(shí),所打開(kāi)的窗口是。

A.工程資源管理器窗口B.工具箱窗口C.代碼窗口D.屬性窗口

10.剛建立一個(gè)新的標(biāo)準(zhǔn)EXE工程后,不在工具箱中出現(xiàn)的控件是o

A.單選按鈕B.圖片框C.通用對(duì)話框D.文本框

11.以下敘述中錯(cuò)誤的是。

A.一個(gè)工程中只能有一個(gè)SubMain過(guò)程

B.窗體的Show方法的作用是將指定的窗體裝入內(nèi)存并顯示該窗體

C.窗體的Hide方法和Unload方法的作用完全相同

D.若工程文件中有多個(gè)窗體,可以根據(jù)需要指定一個(gè)窗體為啟動(dòng)窗體

12.以下敘述中錯(cuò)誤的是。

A.VisualBasic是事件驅(qū)動(dòng)型可視化編程工具

B.VisualBasic應(yīng)用程序不具有明顯的開(kāi)始和結(jié)束語(yǔ)句

C.VisualBasic工具箱中的所有控件都具有寬度(Width)和高度(Height)屬性

I).VisualBasic中控件的某些屬性只能在運(yùn)行時(shí)設(shè)置

13.以下敘述中錯(cuò)誤的是。

A.在工程資源管理器窗口中只能包含一個(gè)工程文件及屬于該工程的其他文件

B.以.BAS為擴(kuò)展名的文件是標(biāo)準(zhǔn)模塊文件

C.窗體文件包含該窗體及其控件的屬性

D.一個(gè)工程中可以含有多個(gè)標(biāo)準(zhǔn)模塊文件

14.以下不屬于VisualBasic系統(tǒng)的文件類型是。

A..FrmB..BatC..VbgD..Vbp

15.以下敘述中錯(cuò)誤的是。

A.打開(kāi)一個(gè)工程文件時(shí),系統(tǒng)自動(dòng)裝入與該工程有關(guān)的窗體、標(biāo)準(zhǔn)模塊等文件

B.保存VisualBasic程序時(shí),應(yīng)分別保存窗體文件及工程文件

C.VisualBasic應(yīng)用程序只能以解釋方式執(zhí)行

1).事件可以由用戶引發(fā),也可以由系統(tǒng)引發(fā)

16.如果一個(gè)工程含有多個(gè)窗體及標(biāo)準(zhǔn)模塊,則以下敘述中錯(cuò)誤的是。

A.如果工程中含有SubMain過(guò)程,則程序一定首先執(zhí)行該過(guò)程

B.不能把標(biāo)準(zhǔn)模塊設(shè)置為啟動(dòng)模塊

C.用Hide方法只是隱藏一個(gè)窗體,不能從內(nèi)存中清除該窗體

D.任何時(shí)刻最多只有一個(gè)窗體是活動(dòng)窗體

17.假定一個(gè)VisualBasic應(yīng)用程序由一個(gè)窗體模塊和一個(gè)標(biāo)準(zhǔn)模塊構(gòu)成。為了保存該應(yīng)

用程序,以下正確的操作是。

A.只保存窗體模塊文件

B.分別保存窗體模塊、標(biāo)準(zhǔn)模塊和工程文件

C.只保存窗體模塊和標(biāo)準(zhǔn)模塊文件

D.只保存工程文件轉(zhuǎn)貼

18.為了清除窗體上的一個(gè)控件,下列正確的操作是________。

A.按回車(chē)鍵

B.按Esc鍵

C.選擇(單擊)要清除的控件,然后按Del鍵

D.選擇(單擊)要清除的控件,然后按回車(chē)鍵

【參考答案】

1.B2.D3.C4.B5.B6.C

7.D8.D9.C10.C11.C12.C

13.A14.B15.C16.A17.B18.C

第二章程序設(shè)計(jì)與算法

【學(xué)習(xí)目的和要求】

了解程序的基本組成和程序設(shè)計(jì)的一般步驟。

【學(xué)習(xí)要點(diǎn)】

由于計(jì)算機(jī)只能執(zhí)行算術(shù)運(yùn)算和邏輯運(yùn)算,所以其解決問(wèn)題的方法、步驟和人們生活中

的處理不同,必須考慮其特殊性。如果利用計(jì)算機(jī)編寫(xiě)程序?qū)崿F(xiàn)某個(gè)功能,不管多復(fù)雜的操

作,也必須轉(zhuǎn)化為算術(shù)和邏輯運(yùn)算的組合,因此,在編寫(xiě)程序之前,必須按照要求,設(shè)計(jì)出

符合計(jì)算機(jī)特性的解題步驟,這就是算法設(shè)計(jì)。

作為算法,應(yīng)具有以下基本特征:

1)確定性

2)可行性

3)有窮性

4)輸入性

5)輸出性

結(jié)構(gòu)化程序設(shè)計(jì)方法中,規(guī)定了算法的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),

任何復(fù)雜的問(wèn)題都可以轉(zhuǎn)化為這三種結(jié)構(gòu)的程序設(shè)計(jì)。當(dāng)然,不管是順序結(jié)構(gòu)還是分支和循

環(huán)結(jié)構(gòu)的程序,都必須按一定的算法設(shè)計(jì)的步驟執(zhí)行。在計(jì)算機(jī)語(yǔ)言的發(fā)展過(guò)程中,對(duì)不同

問(wèn)題的處理已經(jīng)形成相對(duì)固定的處理方法,這些我們會(huì)在后面的內(nèi)容中介紹。

第三章常用控件與界面設(shè)計(jì)

【學(xué)習(xí)目的和要求】

1.掌握窗體界面的設(shè)計(jì)方法,合理使用常用控件,并對(duì)窗體進(jìn)行布局。

2.掌握窗體和常用控件常見(jiàn)的屬性、事件和方法。

【學(xué)習(xí)要點(diǎn)】

一.VB用戶界面設(shè)計(jì)基礎(chǔ)

VB程序界面的設(shè)計(jì)可以分為兩個(gè)步驟:先繪制控件,然后確定控件屬性。繪制控件是

指在工具箱里單擊所需要的控件,然后在窗體里按下鼠標(biāo),并拖曳到合適位置松開(kāi)鼠標(biāo)即可。

確定屬性要做的任務(wù)是先選中控件,然后按F4鍵或單擊工具欄上的屬性窗口按鈕進(jìn)入屬性

(Propenes)設(shè)置窗口,再在屬性窗口中找到要設(shè)置的屬性并進(jìn)行設(shè)置。

1.常見(jiàn)屬性的設(shè)置

1)Name屬性

對(duì)象都有名字,計(jì)算機(jī)把名字看成對(duì)象與對(duì)象之間的根本差異,因此在同一窗體里不許

出現(xiàn)重名的情況(除非這是一個(gè)控件數(shù)組)。

在簡(jiǎn)單的程序里,給控件命名不是很必要,完全可以使用控件Name屬性的缺省值,例

如Textl。但在有幾十個(gè)控件的復(fù)雜窗體里,如果用默認(rèn)的名稱就很難區(qū)分它們。所以,專

業(yè)的程序設(shè)計(jì)人員推薦使用由三個(gè)小寫(xiě)字母的前綴和一個(gè)第一個(gè)字母為大寫(xiě)的描述性單詞

組成的名字。其中前三個(gè)小寫(xiě)字母是各種對(duì)象名稱的簡(jiǎn)稱,如下表3-1所示。例如可以用

cmdExit來(lái)表示一個(gè)命令按鈕,前綴cmd表示是一個(gè)命令按鈕,而Exit則表示“退出”的含

義。此種命名方法雖然不是必須的,但卻是一個(gè)優(yōu)秀程序員應(yīng)當(dāng)具備的素質(zhì)。

表3-1常見(jiàn)對(duì)象的推薦命名前綴

對(duì)象前綴例子

標(biāo)簽(Label)IblIblFakeName

文本框(TextBox)txttxtWarning

命令鈕(CommandButton)cmdcmdExit

窗體(Form)frmfrmTax

框架(Frame)frafraGroupButtons

組合框(ComboBox)cbocboCrimesCommitted

列表框(ListBox)1stIstCandidates

確認(rèn)框(CheckBox)chkchkCareerChioce

選項(xiàng)鈕(OptionButton)optimgPrettyDrawing

菜單(Menu)mnu1inBorder

圖形(Image)imgoptStationlOl

圖片框(PictureBox)picpicPrettyPicture

水平滾動(dòng)條(HorizontalScrollBar)hsbhsbTemperature

垂直滾動(dòng)條(VerticalScrollBar)vsbvsbMoneyRaised

目錄列表框(DirectoryListBox)dirdirTree

驅(qū)動(dòng)器列表框(DriveListBox)drvdrvHardDisk

文件列表框(FileListBox)filfilDocuments

2)Caption屬性

Caption即標(biāo)題,是可以在對(duì)象外觀上直接看見(jiàn)的文本,可以長(zhǎng)達(dá)255字符,包括空格

和標(biāo)點(diǎn)符號(hào),比如一個(gè)叫cmdOk的命令鈕,它的Caption屬性就可以是“確定”。注意:

并不是所有的對(duì)象都有此屬性,比如文本框、圖片框、線條等就沒(méi)有Caption屬性。

為按鈕設(shè)置熱鍵:在設(shè)置Caption屬性時(shí),在需要加下劃線的字母前加上符號(hào),

例如“&File",輸出的就是“file",這樣就可以通過(guò)按ALT健和標(biāo)題上那個(gè)帶下劃線的

字母來(lái)選取它了,不必為此編寫(xiě)任何代碼。如下圖3T所示,我們?yōu)椤按_定”按鈕和“取消”

按鈕分別設(shè)置了熱鍵。和X,事實(shí)上,只需要設(shè)置Caption屬性分別是“確定(&0)”和“取

消(&X)”即可。

圖3T

另外,很多初學(xué)者會(huì)對(duì)Name和caption這兩個(gè)屬性分不清,下面我們對(duì)Name和

caption來(lái)做一個(gè)比較。

①Name是系統(tǒng)用來(lái)識(shí)別對(duì)象的,編程時(shí)需要用它來(lái)指代各對(duì)象;Caption是給用戶看

的,提示用戶該對(duì)象的作用;

②Name可以采用系統(tǒng)默認(rèn)的名稱,但Caption應(yīng)該根據(jù)實(shí)際情況改成意義明了的名詞,

便于操作者使用;

③所有對(duì)象都有Name,但不一定都有Caption屬性。

3)Top,Left屬性

這兩個(gè)屬性決定對(duì)象的位置。只有兩種情況需要在屬性窗口里設(shè)置這兩個(gè)屬性:第一種

是用戶沒(méi)有鼠標(biāo),第二種是程序員需要十分精確地設(shè)定這兩個(gè)值。當(dāng)選中對(duì)象,單擊并拖曳

它的時(shí)候,便在修改這兩個(gè)值了。

4)Height,Width屬性

這兩個(gè)屬性決定了對(duì)象的大小,當(dāng)選中控件時(shí),它周?chē)霈F(xiàn)八個(gè)小黑方塊,把鼠標(biāo)指向

這些方塊,鼠標(biāo)指針將變成一個(gè)雙向的箭頭,這時(shí)按下鼠標(biāo)并拖曳它,即可改變控件的大小,

也就改變了Height,Width屬性。Top、Left和Height、Width屬性的含義見(jiàn)下圖3-2。

Top屬性

Height屬性

Left屬性

Width屬性

圖3-2

2.窗體的屬性

窗體對(duì)象常用的屬性如下表3-2所示。

表3-2窗體常用的屬性

屬性名稱說(shuō)明

系統(tǒng)識(shí)別窗體的標(biāo)識(shí)名,一個(gè)窗體名必須以一個(gè)字母開(kāi)頭,

Name窗體名稱

可包含數(shù)字和下劃線,但不能包含空格和標(biāo)點(diǎn)符號(hào)。

Caption窗體標(biāo)題出現(xiàn)在窗體標(biāo)題欄中的文本內(nèi)容

這個(gè)屬性是用戶經(jīng)常要使用的一種屬性。當(dāng)用戶的應(yīng)用程

序在工具條上最小化或在Windows桌面上變?yōu)橐粋€(gè)獨(dú)立應(yīng)

Icon窗體圖標(biāo)

用程序時(shí),該屬性決定將采用何種圖標(biāo),窗體控制框里的

圖標(biāo)也由它決定。

BackColor窗體背景色川以從屬性框里彈出調(diào)色板,選擇所需要的顏色

ForeColor窗體前景色窗體上打印文字的顏色

這個(gè)屬性決定了窗體邊框的樣式,共有6種屬性值。改變

BorderStyle邊框風(fēng)格窗體的BordrStyle屬性后,窗體在屏幕上沒(méi)有變化,它只

在運(yùn)行時(shí)才變?yōu)樗蟮臉幼印?/p>

Apearance外形這個(gè)屬性用來(lái)決定控件是否采用三維效果

ControlBox控制按鈕用來(lái)決定是否采用控件框的屬性,僅在程序運(yùn)行時(shí)才有效。

用來(lái)改變?cè)摯绑w上顯示信息的字體、字型和字號(hào),它控制

Font字體

著直接在窗體上打印的文本顯示。

該屬性決定窗體是否可見(jiàn),默認(rèn)情況下值為T(mén)rue,是可見(jiàn)

Visible可見(jiàn)性

的,值為False,運(yùn)行時(shí)將看不見(jiàn)窗體。

WindowState窗體狀態(tài)指定窗體在運(yùn)行時(shí)的三種狀態(tài):正常、最小化、最大化。

Enabled活動(dòng)性默認(rèn)值為T(mén)rue,決定窗體能否被訪問(wèn)。

Left>Top>左邊距、頂邊

決定窗體在屏幕上的位置及窗體大小。

Height^Width距、高度、寬度

二.VB窗體的創(chuàng)建

1.設(shè)置窗體屬性

1)在設(shè)計(jì)態(tài)通過(guò)屬性窗口設(shè)置,直接在屬性窗口中選擇或輸入即可。

2)在程序代碼中改變屬性值

代碼中的格式為:對(duì)象名.屬性=屬性值

例如:Forml.BackColor=RGB(255,0,0)'設(shè)置窗體的背景色

Forml.Caption="歡迎同學(xué)們學(xué)習(xí)VB”'設(shè)置窗體的標(biāo)題屬性

2.窗體的常用方法

1)Move方法

用以移動(dòng)窗體或其它控件。

語(yǔ)法:object.MoveLeft,Top,Width,Height

說(shuō)明:只有l(wèi)eft參數(shù)是必須的。但是,要指定任何其它的參數(shù),必須先指定出現(xiàn)在語(yǔ)

法中該參數(shù)前面的全部參數(shù)。例如,如果不先指定left利top參數(shù),則無(wú)法指定width參

數(shù)。任何沒(méi)有指定的尾部的參數(shù)則保持不變。

例3-1運(yùn)行程序,單擊窗體Forml后,窗體向右移動(dòng)500個(gè)特維(特維是窗體默認(rèn)的

度量單位)。

分析:

程序運(yùn)行后,如果單擊窗體就執(zhí)行相應(yīng)的操作,所以應(yīng)編寫(xiě)窗體的單擊事件過(guò)程,可調(diào)

用窗體的Move方法實(shí)現(xiàn)。Move方法的第一個(gè)參數(shù)就是指定移動(dòng)對(duì)象后的水平位置,要求每

單擊窗體就將窗體在原來(lái)的基礎(chǔ)上向右移動(dòng)500個(gè)特維,窗體水平方向原來(lái)的位置是

Forml.Left,移動(dòng)后的位置是Forml.Left+500,所以可編寫(xiě)代碼如下:

PrivateSubFormClickO

Forml.MoveForml.Left+500

EndSub

注意:如果在調(diào)用對(duì)象的方法和屬性時(shí)省略對(duì)象名,系統(tǒng)默認(rèn)為是當(dāng)前窗體對(duì)象,所以

上述代碼還可以寫(xiě)成如下形式:

PrivateSubFormClickO

MoveLeft+500

EndSub

考慮一下:如果不用Move方法,是否可以實(shí)現(xiàn)上述功能?以下程序可以實(shí)現(xiàn)嗎?

PrivateSubFormClickO

Forml.Left=Forml.Left+500

EndSub

例3-2運(yùn)行程序,單擊窗體Forml后,窗體向下移動(dòng)500個(gè)特維(特維是窗體默認(rèn)的

度量單位)。

分析:

本例與例3T唯一不同就是窗體移動(dòng)的方向不同,垂直方向移動(dòng)的位置由Top屬性決定,

如果編寫(xiě)如下程序,考慮一下,是否正確?

PrivateSubForm_Click()

Forml.MoveForml.Top+500

EndSub

大家可以上機(jī)運(yùn)行一下,結(jié)果會(huì)發(fā)現(xiàn)單擊窗體后,窗體仍然是水平移動(dòng),而且只會(huì)移動(dòng)

一次,以后就不會(huì)再移動(dòng),為什么?

調(diào)用Move方法時(shí)要注意,它帶4個(gè)參數(shù),每個(gè)參數(shù)的作用是不同的,第一參數(shù)決定其

移動(dòng)后的水平位置,第二個(gè)參數(shù)決定其移動(dòng)后的垂直位置,要求水平位置不變,垂直方向向

下移動(dòng)500特維,所以正確的程序是:

PrivateSubForm_Click()

Forml.MoveForml.Left,Forml.Top+500

EndSub

參考上一個(gè)例子,考慮一下,如果不用Move方法,是否可以實(shí)現(xiàn)上述功能?考慮用窗

體的Left和Top屬性是否可以完成?

例3-3運(yùn)行程序,單擊窗體后,將窗體上的命令按鈕C1向下移動(dòng)500個(gè)特維,同時(shí)將

其高度和寬度變?yōu)樵瓉?lái)的兩倍。

分析:

Move方法是很多對(duì)象都可以執(zhí)行的公共方法,除了窗體,標(biāo)簽、文本框、命令按鈕等

都可以執(zhí)行Move方法。因?yàn)镸ove方法的第三個(gè)參數(shù)和第四個(gè)參數(shù)分別用來(lái)指定對(duì)象的寬度

和高度,即對(duì)象在移動(dòng)位置的同時(shí)還可以改變大小。原來(lái)命令按鈕C1的寬度是Cl.Width,

高度是CLHeight,所以移動(dòng)后寬度應(yīng)為Cl.Width*2,高度為CLHeight*2,所以可以編寫(xiě)

程序如下:

PrivateSubForm_Click()

Cl.MoveCl.Left,Cl.Top+500,Cl.Width*2,Cl.Height*2

EndSub

2)Print方法

Print方法主要用來(lái)在對(duì)象上輸出信息,除了窗體對(duì)象外,還可以在圖片框、立即窗口

等對(duì)象中輸出信息。在窗體的所有方法中,Print方法可能是用得最多的。

語(yǔ)法:object.Print[表達(dá)式列表]

例3-4以下語(yǔ)句運(yùn)行后在窗體上輸出內(nèi)容為行,分別為。

Print1,2,3

Print4;5;6

分析:

這里有幾個(gè)注意點(diǎn):

①Print方法前若缺省對(duì)象名,系統(tǒng)默認(rèn)為在窗體上輸出,所以這兩條語(yǔ)句都是在窗

體上輸出內(nèi)容。

②Print方法如果同時(shí)輸出多個(gè)數(shù)據(jù)項(xiàng),每個(gè)數(shù)據(jù)項(xiàng)之間可用逗號(hào)或分號(hào)分隔,注意

逗號(hào)分隔和分號(hào)分隔是有區(qū)別的,逗號(hào)分隔格式稱為分區(qū)格式,系統(tǒng)將顯示區(qū)域每14列劃

為一個(gè)分區(qū),第一個(gè)輸出項(xiàng)會(huì)從第一個(gè)分區(qū)輸出,后面的輸出項(xiàng)將依次從下一個(gè)分區(qū)開(kāi)始輸

出;分號(hào)分隔格式稱為緊湊格式,數(shù)據(jù)項(xiàng)之間是緊跟著輸出。

很顯然,這兩條語(yǔ)句中第一個(gè)是分區(qū)輸出格式,第二個(gè)是緊湊輸出格式,一共輸出兩行,

顯示結(jié)果如下圖3-3所示:

圖3-3

可以看出,第一行是分區(qū)輸出,每個(gè)數(shù)據(jù)項(xiàng)之間的間隔較大,每個(gè)分區(qū)間隔14歹人第

二行雖然是緊湊輸出,但數(shù)據(jù)也沒(méi)有連在一起顯示,這是因?yàn)閂B在輸出數(shù)值數(shù)據(jù)時(shí),系統(tǒng)

會(huì)自動(dòng)在每個(gè)輸出項(xiàng)后輸出一個(gè)空格作為分隔符,如果是正數(shù),還會(huì)在每個(gè)整數(shù)前輸出一個(gè)

空格作為符號(hào)位,所以每個(gè)數(shù)據(jù)項(xiàng)之間還有2個(gè)空格分隔。

例3-5以下語(yǔ)句運(yùn)行后在窗體上輸出內(nèi)容為行,分別為。

Print1,2,3;

Print4;5;6

分析:

這兩條語(yǔ)句與例2-4唯一的區(qū)別就在于第一條語(yǔ)句后有一個(gè)分號(hào)分隔符。如果Print

輸出項(xiàng)后沒(méi)有任何分隔符,那么語(yǔ)句執(zhí)行完系統(tǒng)會(huì)自動(dòng)換行,如果下面還有輸出語(yǔ)句,則該

語(yǔ)句從下一行開(kāi)始顯示;如果Print輸出項(xiàng)后有分隔符,不管是逗號(hào)還是分號(hào),都說(shuō)明該語(yǔ)

句執(zhí)行完后不會(huì)換行,下一個(gè)輸出語(yǔ)句還會(huì)從這一行的下一個(gè)位置顯示(下一個(gè)顯示位置取

決了最后分隔的是逗號(hào)還是分號(hào))。所以,這兩條語(yǔ)句在窗體上只顯示一行,顯示結(jié)果如下

圖3-4所示:

圖3-4

例3-6以下語(yǔ)句運(yùn)行后在窗體上輸出內(nèi)容為_(kāi)____行,分別為o

Print1;2;3

Print

Printa;b;c

分析:

由于這三條Print語(yǔ)句末尾后都沒(méi)有分隔符號(hào),所以每輸完一行就會(huì)自動(dòng)換行,一共輸

出三行。其中第一行按緊湊格式輸出1、2、3,由于是數(shù)值數(shù)據(jù),每個(gè)數(shù)據(jù)項(xiàng)之間會(huì)有空格

分隔;第二行Print語(yǔ)句后沒(méi)有任何輸出項(xiàng),表示輸出一個(gè)空行;第三行按緊湊格式輸出3

個(gè)字符,由于系統(tǒng)在輸出字符數(shù)據(jù)時(shí)不會(huì)輸出前置空格和尾隨空格,所以這3個(gè)字符數(shù)據(jù)輸

出是連在一-起的。顯示結(jié)果如下圖3-5所示:

圖3-5

例3-7以下語(yǔ)句運(yùn)行后在窗體上輸出內(nèi)容為行,分別為。

Print1;2;3;

Print

Printa;b;c

分析:

仍然是3條Print語(yǔ)句,和例2-6唯一的區(qū)別是第一條Print語(yǔ)句后有分號(hào)分隔符,因

為有分隔符號(hào),所以在輸完第一行1、2、3后不會(huì)換行,第二句Print語(yǔ)句會(huì)直接在第一行

末尾輸出空行,輸完后換行,所以運(yùn)行后會(huì)在窗體上輸出兩行內(nèi)容,第二條print語(yǔ)句的作

用相當(dāng)于取消第一條語(yǔ)句后的分隔符號(hào),起換行的作用,顯示結(jié)果如下圖3-6所示:

圖3-6

例3-8編寫(xiě)程序,要求運(yùn)行時(shí)單擊窗體后,在窗體上輸出如圖2-7的內(nèi)容。

圖3-7

分析:

程序要求運(yùn)行時(shí),當(dāng)窗體的單擊事件發(fā)生時(shí)實(shí)現(xiàn)上述功能,所以應(yīng)將代碼放在

FormClick事件過(guò)程中。

Print方法輸出信息時(shí)可以利用Tab函數(shù)或Spc函數(shù)實(shí)現(xiàn)定位輸出。在輸出項(xiàng)之前用Tab

函數(shù)定位,可將內(nèi)容在指定列輸出,而Spc函數(shù)主要用來(lái)輸出空格。如執(zhí)行語(yǔ)句

PrintTab(10);12;spc(5);15

將在當(dāng)前行的第10列輸出12,再輸出5個(gè)空格,然后輸出15。

注意:用Tab函數(shù)、Spc函數(shù)和輸出項(xiàng)配合時(shí),一般用分號(hào)分隔。

所以以上圖形可以編寫(xiě)程序如下:

PrivateSubForm_click()

PrintTab(5);

PrintTab(4);”***"

PrintTab(3);”*****"

PrintTab(2);”*******"

EndSub

若用Spc函數(shù),則程序可以寫(xiě)成:

PrivateSubForm_click()

PrintSpc(4);"*"

PrintSpc⑶;”***“

PrintSpc(2);”*****"

PrintSpc(l);”*******"

EndSub

3)Show-,Hide方法

這兩個(gè)方法分別用來(lái)顯示和隱藏Form對(duì)象。

說(shuō)明:

如果調(diào)用Show方法時(shí)指定的窗體沒(méi)有裝載,VisualBasic將自動(dòng)裝載該窗體。Hide

方法可以暫時(shí)將窗體隱藏,用戶將無(wú)法訪問(wèn)隱藏窗體上的控件,但并不會(huì)將窗體從內(nèi)存中卸

載。如果調(diào)用Hide方法時(shí)窗體還沒(méi)有加載,那么Hi加方法將加載該窗體但不顯示它。

可以利用這兩個(gè)方法在不同的窗體之間進(jìn)行切換。

例3-9編寫(xiě)程序,要求運(yùn)行時(shí)單擊窗體Forml后,將Forml隱藏,顯示窗體Form2。

分析:

程序中要用到兩個(gè)窗體,除了創(chuàng)建工程時(shí)默認(rèn)的窗體外,可以執(zhí)行“工程”一“添加窗

體”菜單項(xiàng)實(shí)現(xiàn)窗體Form2的添加。雖然這時(shí)工程中有兩個(gè)窗體,但工程執(zhí)行時(shí)只有一個(gè)啟

動(dòng)窗體,默認(rèn)為第一個(gè)創(chuàng)建的窗體。要實(shí)現(xiàn)上述功能,可以編寫(xiě)程序如下:

PrivateSubForm_click()

Forml.Hide

Form2.Show

EndSub

4)Cis方法

清除運(yùn)行時(shí)Form或PictureBox所生成的圖形和文本。

語(yǔ)法:object.Cis

說(shuō)明:

Cis將清除圖形和打印語(yǔ)句在運(yùn)行時(shí)所產(chǎn)生的文本和圖形,比如可以執(zhí)行Cis方法將窗

體上用Print方法輸出的內(nèi)容。

注意:設(shè)計(jì)時(shí)在Form中使用Picture屬性設(shè)置的背景位圖和放置的控件不受Cis影

響。調(diào)用Cis之后,object的CurrentX和CurrentY屬性復(fù)位為0?

3.窗體的常用事件

1)Load事件

這個(gè)事件發(fā)生在窗體被裝入內(nèi)存時(shí),且發(fā)生在窗體出現(xiàn)在屏幕之前。窗體出現(xiàn)之前,VB

會(huì)看一看Load事件里有沒(méi)有代碼,如果有,那么它先執(zhí)行這些代碼,再讓窗體出現(xiàn)在屏幕

上。

2)Click事件,Dblclick事件

這兩個(gè)事件在單擊或雙擊窗體時(shí)發(fā)生。不過(guò)單擊窗體里的控件時(shí),窗體的Click事件并

不會(huì)發(fā)生,VB會(huì)去看控件的Click事件里有沒(méi)有代碼。

3)Activate(活動(dòng)事件)與Deactivate(非活動(dòng)事件)

顯示多個(gè)窗體時(shí),可以從一個(gè)窗體切換到另一個(gè)窗體。每次激活一個(gè)窗體時(shí),發(fā)生

Activate事件,而前一個(gè)窗體發(fā)生Deactivate事件。

4)Resize事件

在窗體被改變大小時(shí)會(huì)觸發(fā)此事件。

4.窗體的控制

1)裝入或卸出窗體

要裝入或卸出窗體,用Load或Unload語(yǔ)句。

裝入窗體:LoadFormName

卸載窗體:UnLoadFormName

FormName變量是要裝入或卸出的窗體名。Load語(yǔ)句只是把窗體裝入內(nèi)存,并不顯示出

來(lái),要顯示窗體可以使用窗體的Show方法。

注意:卸載當(dāng)前窗體還可以執(zhí)行語(yǔ)句UnLoadMe,Me在VB中表示當(dāng)前窗體對(duì)象的關(guān)鍵

字。

2)End語(yǔ)句

End語(yǔ)句的功能是終止應(yīng)用程序的執(zhí)行,并從內(nèi)存卸載所有窗體。

三.常用控件

1.常用的標(biāo)準(zhǔn)控件的屬性、方法和事件

公共屬性:Name^Caption>Enabled、Fontsize^Height、Width、Index>Left、Top>

TabStop

公共方法:Move>Refresh、Setfocus(設(shè)置焦點(diǎn))

公共事件:Click>DblClick>LostFocus(失去焦點(diǎn))

2OTfextBox文本框

文本框用于接受用戶在文本框內(nèi)輸入內(nèi)容或顯示內(nèi)容,具體屬性和事件見(jiàn)下表3-5。

表3-5文本框常用屬性和事件

屬性、方法、

說(shuō)明

事件

Text屬性即用戶從文本框輸入的內(nèi)容

PasswordChar

設(shè)置口令時(shí)用的掩碼,如:用*代替實(shí)際輸入的內(nèi)容

屬性

MaxLength屬

最大長(zhǎng)度,缺省值是0,即可以輸入任意個(gè)字符

MultiLine屬為T(mén)rue時(shí)可以多行文本,為False時(shí)只能輸入一行

性文本

Alignment屬文本在框中的對(duì)齊方式:0=左對(duì)齊,1=右對(duì)齊,2=

性居中

Change事件當(dāng)框中的文本內(nèi)容發(fā)生變化時(shí)觸發(fā)該事件

LostFocus事

當(dāng)光標(biāo)離開(kāi)文本框時(shí)觸發(fā)該事件

控件的屬性通常會(huì)在上機(jī)考試中要求設(shè)置,這時(shí)候就要求根據(jù)題目的要求,知道應(yīng)該對(duì)

哪個(gè)屬性進(jìn)行設(shè)置。下面我們來(lái)看?個(gè)例子。

請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)VisualBasic應(yīng)用程序(包括界面和代碼)。

(1)在標(biāo)題為“文本框”、名稱為Forml的窗體上畫(huà)一個(gè)名稱為T(mén)extl的文本

框,無(wú)初始內(nèi)容,其dj、寬分別為2000、1800,可顯不多行,有小平談動(dòng)

條,并通過(guò)屬性窗口把文本框的字體樣式設(shè)置為“斜體”(如圖詼?zhǔn)?。

卷信時(shí)必須存放在考生文件夾下,工程文件名為sjtLvbp,窗體文件名

為sjtl.fririo

根據(jù)題目的要求,我們應(yīng)當(dāng)進(jìn)行以下步驟的操作:

A)設(shè)置窗體的Caption屬性為“文本框”

B)在窗體上放一個(gè)TextBox控件,設(shè)置其Text屬性為空,設(shè)置其Height屬性為2000,

Width屬性為1800,設(shè)置其MultiLine為T(mén)rue,設(shè)置ScrollBars為1

C)設(shè)置Font屬性中字型為斜體

例3-10編寫(xiě)程序,要求一運(yùn)行程序,在文本框Textl中輸入的每一個(gè)字符都顯示

為“*";單擊命令按鈕Commandl,則文本框中顯示真正的內(nèi)容;單擊命令按鈕Command2,

則文本框中顯示的每一個(gè)字符都顯示成“?北程序運(yùn)行界面分別見(jiàn)圖3-8、3-9和370。

圖3-8

圖3-9

言“Foral

圖3-10

分析:

要求一運(yùn)行程序就將在文木框Textl中輸入的每一個(gè)字符都顯示為"*",應(yīng)該在屬性

窗口中設(shè)置其PasswordChar屬性為“*"。兩個(gè)命令按鈕的事件過(guò)程如下:

PrivateSubCommand1Click()

Textl.PasswordChar=""'將PasswordChar設(shè)置為空串,將取消文本框的密碼屬

EndSub

PrivateSubCommand2_Click()

Textl.PasswordChar="?"

EndSub

2)Label標(biāo)簽

標(biāo)簽用于在窗體上添加文字說(shuō)明,具體屬性和事件見(jiàn)下表3-6?

表3-6標(biāo)簽常用屬性和事件

屬性、方法、事件說(shuō)明

Alignment屬性指明Caption文本的對(duì)齊方式:0二左對(duì)齊,1二右對(duì)齊,2二居中

自動(dòng)調(diào)節(jié)大小,為T(mén)rue時(shí)可根據(jù)文本大小自動(dòng)調(diào)整標(biāo)簽大小,

AutoSize屬性

為False時(shí)標(biāo)簽大小不能改變,過(guò)長(zhǎng)的文本被截掉

為T(mén)rue時(shí)可根據(jù)標(biāo)簽大小自動(dòng)換行(前提條件是AutoSize為

Wordwrap屬性

True)

下面我們來(lái)看一個(gè)例子。

請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)VisualBasic應(yīng)用程序(包括界面和代碼)。

Cl)在各鰲咨駕蘆軸翳5Z'第堂”的窗體上畫(huà)一個(gè)名稱為L(zhǎng)abell的標(biāo)簽,

樂(lè)簽的

2)標(biāo)簽可根據(jù)顯示內(nèi)容宣動(dòng)調(diào)整其大小匕

3)標(biāo)簽帶有援框,目棕譬內(nèi)容顯示為三號(hào)字。

運(yùn)行后的窗彳本如圖所不。

y4~?

薦蠢時(shí)必須存放在考生文件夾下,工程文件名為sjtl.vbp,窗體文件

名為sjtl.fririo

標(biāo)簽

I計(jì)算機(jī)等級(jí)考試

我們應(yīng)該完成以下兒個(gè)步驟。

A)設(shè)置窗體的Caption屬性為"標(biāo)簽"

B)在窗體上放一個(gè)Label控件,設(shè)置其Caption屬性為“計(jì)算機(jī)等級(jí)考試”

C)設(shè)置Label控件的AutoSize屬性為T(mén)rue

D)設(shè)置其BoderStyle屬性為1,設(shè)置Font屬性中的大小為三號(hào)字

3)ListBox列表框

列表框主要用于列出可供用戶選擇的項(xiàng)目列表,具體屬性和事件見(jiàn)下表3-7。

表3-7列表框常用屬性和事件

屬性、方法、事件說(shuō)明

用于保存列表內(nèi)容,訪問(wèn)形式:[對(duì)象名].List(列表項(xiàng)序號(hào)),

List屬性

列表項(xiàng)的序號(hào)由上到下依次為0、1、2、3……。

ListCount屬性列表項(xiàng)數(shù)目

列表項(xiàng)索引,其值為最后選中的列表項(xiàng)序號(hào),第一個(gè)為0,如果

Listindex屬性

未選中任何表項(xiàng),其值為-1。

列表項(xiàng)正文,其值為最后選中的列表項(xiàng)的文本,它與List

Text屬性

(Listl.Listindex)相同。

Columns屬性列表框顯示形式,取0時(shí)為一列顯示所有行,其他值為多列。

排序?qū)傩?為T(mén)rue時(shí),列表項(xiàng)按ASCII碼排序,為False時(shí),

Sort屬性

則不排序。

添加列表項(xiàng),使用格式:

Addltem方法[對(duì)象名.]Addltem〈列表項(xiàng)文本>[,插入位置序號(hào)]

若不指定位置,則插入到列表末尾。

Clear方法清除列表所有項(xiàng)目

刪除指定列表項(xiàng)內(nèi)容,格式:[對(duì)象名.]Removeitem刪除項(xiàng)序

Removeitem方法

號(hào)

下面我們來(lái)看一個(gè)例子。

在名稱為Forml的

溫馨提示

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