Visual Basic教學(xué)課件介紹_第1頁(yè)
Visual Basic教學(xué)課件介紹_第2頁(yè)
Visual Basic教學(xué)課件介紹_第3頁(yè)
Visual Basic教學(xué)課件介紹_第4頁(yè)
Visual Basic教學(xué)課件介紹_第5頁(yè)
已閱讀5頁(yè),還剩164頁(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介紹

第二章用戶界面設(shè)計(jì)

第三章編程的基礎(chǔ)(含變量,常量,條件語(yǔ)句,循環(huán)語(yǔ)句,自定義變量,自

定義過(guò)程,對(duì)象和類等基礎(chǔ))

第四章Windows95的新控件VisualBasic的輸入輸出

第五章VisualBasic的鼠標(biāo)事件和繪圖

第六章VisualBasic的數(shù)據(jù)庫(kù)、報(bào)表、預(yù)覽、打印

第七章從文件中存取資料

第八章發(fā)行應(yīng)用程序

第九章使用WindowsAPI和用VisualBasic建立自己的屏幕保護(hù)程序

第十章創(chuàng)建ActiveX控件

第H■一章ActiveX文檔

第十二章用對(duì)象鏈接與嵌入(OLE)擴(kuò)展VisualBasic

第十三章使用資源文件

第十四章用VisualBasic建立ActiveXDLL

第十五章用Winsock控件進(jìn)行Internet通信

第十六章Web瀏覽控件

第一章VisualBasic介紹

§2窗體和命令鈕介紹

一、窗體

窗體是Windows的基本組成部分,這也是為什么這個(gè)操作系統(tǒng)叫Windows

的原因。它的主要屬性除上屬介紹的以外,還包括:

1,Appearance屬性

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

2,BorderSlyle屬性

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

屈性后,窗體在屏幕上沒(méi)有變化,它只在運(yùn)行時(shí)才變?yōu)槟闼蟮臉幼印?/p>

3,ComBox屬性

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

4,Font屈性

程序員可以改變?cè)摯绑w上顯示信息的字體,它控制著直接在窗體上打印的

文本顯示。

5.Icon屬性

這個(gè)屬性是用戶經(jīng)常要使用的種屬性。當(dāng)用戶的應(yīng)用程序在工具條上最

小化或在Windows桌面上變?yōu)橐粋€(gè)獨(dú)立應(yīng)用程序時(shí),該屬性決定將采用何種

圖標(biāo),窗體控制框里的圖標(biāo)也由它決定。為自己的窗體設(shè)置該屬性時(shí),要控

制住自己挑三揀四的沖動(dòng)。

6,Visible屬性

該屬性決定窗體是否可見(jiàn).錯(cuò)誤地改變其值是很危險(xiǎn)的,窗體會(huì)從眼前消

失,這種莫名其妙的事情會(huì)使用戶驚惶失措,所以肩負(fù)重任的程序員?定要

慎重喲!

7,WindowState屬性

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

二、窗體的主要小件

1,Load事件

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

出現(xiàn)之前,VisualBasic會(huì)看一看Load事件里有沒(méi)有代碼,如果有,那么它先

執(zhí)行這些代碼,再讓窗體出現(xiàn)在解暮上。

2,Click事件,Dblclick事件

這兩個(gè)事件布第擊或雙擊窗體時(shí)發(fā)生.不過(guò)你的擊窗體里的控件時(shí),窗體

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

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

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

時(shí),發(fā)生ActivateM件,而前■個(gè)窗體發(fā)生Deaclivale事件。

三、窗體控制

I,裝入或卸出窗體

要裝入或卸出窗體,用Load或Unload語(yǔ)句。Load語(yǔ)句的語(yǔ)法如F:

LoadformName

而UnLoad語(yǔ)句的語(yǔ)法是:

UnLoadformName

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

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

2,顯示或隱藏窗體

要顯示窗體,用Show方法。若尚未裝入內(nèi)存則先裝入再顯示.它的語(yǔ)法

如下:

formName.showmode

FormName變量是窗體名,可選變?cè)猰ode為0(缺省值)時(shí)窗體為非模態(tài),

為1時(shí)窗體為模態(tài)。模態(tài)窗體完全占有應(yīng)用程序控制權(quán),不允許切換到別的

應(yīng)用程序,除非關(guān)閉!而非模態(tài)窗體則反之。

同理,隱藏窗體用fonnName.hideo

四、命令鈕

命令鈿有兩類:一類是簡(jiǎn)單的命令鈿,一類是圖形針1。圖形鈿常常成組地

出現(xiàn)在屏幕的頂端,成為一些程序炫耀自己貼近用戶的標(biāo)志.圖形鈕充分利

用了圖形用戶界面的特征,而且比命令鈕小,用它的缺點(diǎn)是用戶必須知道圖

形鈕是什么意思,而且沒(méi)有鼠標(biāo)的用戶恐怕用不了圖形鈿。命令鈕也有

Appearance.Caplion、Font、Left*Visihle之類的屬性。命令鈕的最主要事件

就是Click事件,它還仃MouseDown和MouseUp等事件

§3建立菜單

一般Windows的菜單條包含F(xiàn)ile,Edit.Window和Help菜單標(biāo)題“我它

的菜單,程序員應(yīng)將它們插在Edit和Window菜單之間。在VisualBasic里,

為了創(chuàng)建菜單,必須打開(kāi)菜單編輯窗口??梢园聪翪trl+E鍵,也可以從Ibols

菜單中選擇MenuEdiior項(xiàng),或者■單擊VisualBasic主窗口的從左邊數(shù)第六個(gè)

圖形鈕。

一、給菜單命名

菜單標(biāo)題和菜單命令也右C叩tion和Name屬性,你設(shè)置了這兩個(gè)屬性就等

于創(chuàng)建了菜單。于控件一樣Caplion是屏辱上可見(jiàn)的,而Name則是一個(gè)抽象

名稱.別忘了在C叩lion里加入以幫助沒(méi)有鼠標(biāo)的用戶。

二、增加和刪除菜單

在MenuEdiior中部有三個(gè)命令鈕分別是Next,Insert,Delete?Insert可用

來(lái)增加新的菜單:在這三個(gè)鍵下面的C叩tion列表框里選中菜單頂(這時(shí)它的

底色就變成深藍(lán)色),單擊Insert鍵,VisualBasic將上?個(gè)增亮菜單卜推并增

亮一空行,你就可以輸入新菜單名和標(biāo)題了。Ddcic鍵可用來(lái)刪掉菜單.你選

中要?jiǎng)h掉的菜單,單擊Delete漁就可以刪掉它了.

三、移動(dòng)菜單標(biāo)題

右四種情況,向上移動(dòng),向下移動(dòng),向左縮排,向右縮排,這就是MenuEditor

中間上下左右箭頭的功能.選中某一?菜單標(biāo)題,安上下箭頭,則這個(gè)菜單將

上下移動(dòng)到你喜歡的位置匕這也決定了它在界面中的位置.如果你按左右

箭頭,情況則有所不同。由于菜單是分級(jí)的,所以,如果它沒(méi)有縮排,則它

是一個(gè)菜單標(biāo)題:如果它縮排一次,那么它將變成一個(gè)菜單命令:如果縮排

兩次,那么它將成為一個(gè)子菜單命令。VisualBasic里你可以總共設(shè)計(jì)四層子

菜單。

四、設(shè)置分離條

分離條是指在菜單中將命令分組的線。

奇怪的是,VisualBasic將分離條也看成一-個(gè)菜單項(xiàng),它也需要Caption和

Name屬性,而且它也有其它屬性,分離條與菜單項(xiàng)的區(qū)別是分離條的Caption

屬性必須是連字號(hào)即減號(hào)。也就是,當(dāng)你設(shè)置了一個(gè)Caplion屬性為“?”的菜

單項(xiàng)時(shí),實(shí)際上你就設(shè)置了一個(gè)分離條,分離條的名字可以是barFilel之類,

以表明分離條的位置。

芻無(wú)標(biāo)建-記事本

文件任)3項(xiàng)肝堪)帶勒出)

新建好

打開(kāi)?…

保存0

另存為日.

一分陶條

貝面諛R<i)-

一分離條

退出QP

五、菜單的各種簡(jiǎn)單屬性

在MenuEdilor里有許多確認(rèn)框和?些正文框及一個(gè)卜拉式的列表框,這些

東西決定了菜單的各種屬性。

1,Checked屬性

這個(gè)屬性值設(shè)置為真,將在菜單命令左邊產(chǎn)生一個(gè)打勾的確認(rèn)標(biāo)志,你可

以看看FileManager里的View菜單就可以了解什么是確認(rèn)標(biāo)志了。

2.Enabled屬性

各種各樣的用戶會(huì)產(chǎn)生千奇百怪的操作,在許多Edit菜單里都會(huì)有不同形

式的讓菜單命令模糊的情況。Enabled屬性就是用來(lái)做這件事的。Enabled屬

性為真,則菜單命令是清晰的.Enabled屬性為假?則菜單命令是模糊的,這

時(shí)用戶就不能選中這個(gè)菜單項(xiàng)了。

3,Visible屬性

用戶看見(jiàn)一個(gè)模糊的菜單而不能選的時(shí)候,有時(shí)會(huì)非常生氣。所以,如果

用戶看不見(jiàn)這個(gè)菜單命令時(shí),他也就不會(huì)發(fā)無(wú)名之火了.如果把Visible屬性

設(shè)為假,則菜單根本不會(huì)出現(xiàn)在肝幕上。這樣做比把Enabled屬性設(shè)為假顯得

更加干脆!

4,Index屬性

可以生成菜單命令數(shù)組,用索引號(hào)區(qū)分開(kāi)°例如向File菜單中添加一系列

最近打開(kāi)的文件名。添加菜單可用Load方法。

以上屬性可以在運(yùn)行時(shí)設(shè)置.,形成動(dòng)態(tài)的菜單的情況。

例如:

innulJndo.Enabled=False

innuPropcrty.Visible=False

你還可以改變Cuplion等屬性。

mnuUndo.Caption="Redo”

在對(duì)窗體,命令鈕和菜單杓所了解后,工具箱里的其它控件就更加容易理

解了。下面這些控件的熟練運(yùn)用,將使你做出漂亮的界面。

六、生成彈出式菜單(或浮動(dòng)菜單)

幾乎每個(gè)Windows應(yīng)用程序都提供彈出式菜單,用戶可以右鍵單擊窗體

或控件取得這個(gè)菜單。彈出式菜單也屬于普通菜單,只是不固定在窗體上,

而是可以在任何地方顯示。

彈出式菜單用PopupMenu方法調(diào)用。假設(shè)我們已經(jīng)用MenuEdiior生成\

名為mnucdit的菜單,則可以在MouscUp3件加入如下代碼:

IfButton=2ThenPopupMenunimiedii

下面將用一個(gè)實(shí)例展示動(dòng)態(tài)菜單和彈出式菜單.

得到。左

繪使菜單

密使菜單

Rwrov'eaFtawo^iQn

Dimrtmcnu

PrivateSubcmdadd_Click()

rtmenu=rtinenu+1

Ifrtmcnu=IThenmnuoption(0).Caption="RuntimeOption"

LoadmnuoptionCrtmenu)

innuupli()n(rtmenu).Captk)n="option#"&rtmenu

EndSub

PrivateSuhcnidremove_CIick()

Ifrtmenu=0Then

MsgBox"menuisempty"

ExitSub

EndIf

Unloadmnuoption(rtmenu)

rtmcnu=nmcnu-1

EndSub

PrivateSubForm_M()useUp(ButtDnAsInteger,ShiftAsInteger,XAsSingle,

YAsSingle)

[fButton=2ThenPopupMenumnuedit

EndSub

§4框架,確認(rèn)框和選項(xiàng)鈕

一、確認(rèn)框和選項(xiàng)鈕就好比多項(xiàng)選擇和單項(xiàng)選擇.在考試時(shí)選擇題總比簡(jiǎn)

答題要好做,因?yàn)槟憧梢杂冒得傻牟呗浴S脩艚缑嬖O(shè)計(jì)的保持簡(jiǎn)單的原則使

確認(rèn)框和選項(xiàng)鈕成為有用的框件。確認(rèn)框和選項(xiàng)鈕用于向程序輸入信息。確

認(rèn)框選中時(shí)會(huì)在小方框里打一個(gè)鉤,菜單設(shè)計(jì)窗口里就有這種確認(rèn)框的例子。

選項(xiàng)鈕選中時(shí)會(huì)在小圓圈里點(diǎn)一個(gè)點(diǎn)。它們的主要屬性除rName.Caption

等,還有:

1,Value屬性

決定它們是否被選中的屬性。

2,Alignment屬性

決定它們的對(duì)齊方式。

二、有兩道選擇題或更多時(shí),我們就必須對(duì)它們進(jìn)行分組。這種分組需要

借助框架控件。分組的方法是:

1.在工具箱里單擊Frame控件:

2.在窗體里拖咀鼠標(biāo)畫(huà)出框架:

3.在工具箱里單擊確認(rèn)框或選項(xiàng)粗控件:

4.在框架里畫(huà)確認(rèn)框或選項(xiàng)鈕:

5.把所需的確認(rèn)框或選項(xiàng)鈕都畫(huà)好。

§5正文框和標(biāo)簽

正文框通常用「向計(jì)算機(jī)輸入信息,而標(biāo)簽通常用于輸出信息。正文框是

一個(gè)卜分重要的控件,因?yàn)橛纱_認(rèn)框和選項(xiàng)鈕向程序輸入的信息畢竟只有少

數(shù)的幾條信息而已e標(biāo)簽和正文框的區(qū)別很小,標(biāo)簽可以看成是一個(gè)在運(yùn)行

時(shí)不能修改正文的正文框。因此標(biāo)簽主要用于輸出信息。標(biāo)簽是生活中不可

缺少的部分,比如教室里的“團(tuán)結(jié),勤奮,嚴(yán)琳,活潑”就是一個(gè)每天不得

不面對(duì)的標(biāo)簽。

1,BorderStylc屬性

決定了正文框和標(biāo)簽的邊框形式。

2,正文框的Text屬性和標(biāo)簽的Caption屬性

這兩個(gè)屬性其實(shí)是一樣的,它決定了用戶在屏幕上看到的東西,只不過(guò)正

文框的Tcxl屬性在運(yùn)行時(shí)可以直接在正文框里修改。

3,Alignment屬性

這個(gè)屬性決定正文或標(biāo)題的排列方式。

4,正文框的Multiline屬性

如果正文框里的字太多了,超過(guò)了正文框的寬度,那么計(jì)算機(jī)就在某個(gè)我

們不知道的地方顯示這行字,所以我們要設(shè)置Mulliline屬性為True,這樣正

文框就有了字換行的能力。

5,正文框的PasswordChar屬性

如果用戶從事的是一種掌握大量金錢或機(jī)密的工作的話(此類用戶肯花大

錢來(lái)買關(guān)于”?算機(jī)的東西),那么他就需要對(duì)自己的工作遮遮掩掩,在Visual

Basic里你可以作一個(gè)口令正義框來(lái)實(shí)現(xiàn)這種遮掩。方法是:

(1)選中作為II令正文框的正文框。(它的周陽(yáng)出現(xiàn)八個(gè)小方塊)

(2)按F4鍵打開(kāi)屬性窗口。

(3)設(shè)置Multiline屬性為False。

(4)設(shè)置PasswordChar為用于掩蓋的字符。(只能是?個(gè)字符,比如*8)

第三步使口令正文框只有一行,因?yàn)镸ultiline屬性為True將使Password

屬性失效。VisualBasic認(rèn)為口令不必太長(zhǎng),因?yàn)樘L(zhǎng)的口令更加容易忘記。

6,正文框的Maxlength屬性

為了防止一些古怪用戶輸入太多的廢話,程序員有限制正文框正文長(zhǎng)度的

權(quán)力,這就是Maxlength屬性。如果Maxlength屬性設(shè)置為零,那么正文框就

只受計(jì)算機(jī)內(nèi)存的限制了。

7.Label的AutoSize屬性和Wordwrap屬性

這兩個(gè)屬性在一起搭配使用總是讓人混淆,以至于VisualBasic附帶的示例

程序里有一個(gè)程序里有這兩個(gè)屬性的例子,它的路徑通常是

c:\vb\sainples\controls\control.vbpo在VisualBasic里運(yùn)行這個(gè)例子,選擇

Options菜單的WordwrapandAutoSize.AutoSize屬性使標(biāo)簽自動(dòng)地?cái)U(kuò)大縮小

以適應(yīng)標(biāo)簽的Caplion屈性,但是它只會(huì)水平伸展。Wordwrap屬性使標(biāo)簽具

有字換行處理的能力。

為了使標(biāo)簽具有垂直伸展和字換行處理,必須設(shè)置它的AutoSize屬性和

Wordwrap屬性同時(shí)為True。

AutoSize屬性為False?Wordwrap屬性為False時(shí),若標(biāo)簽不夠高而Caption

太長(zhǎng)時(shí),Caplion將被切割掉。

AutoSize屬性為False,Wordwrap屬性為True對(duì),情況同上。

AutoSize屬性為True,Wordwrap屬性為False時(shí),表示可以水平伸展,但

只顯示一行信息。

Locked屈件

程序員可以阻止用戶改變文本框的內(nèi)容,用戶只可以看文本而不能改變它。

這是VisualBasic4.0的新功能。

§6圖形框(PiclureBox)和圖象框(ImageBox)

PictureBox和ImageBox是用來(lái)把圖形放入程序里的。PictureBox和

ImageBox可以顯示幾種不同格式的圖形。Bitmap文件(,BMP或.DIB)、18n

文件(.ICO或.CUR)、Mciaf加圖元文件(.WMF)、增強(qiáng)型圖元文件(.EMF)、

JEPG(.JPG)及GIF(.GIF)文件。在VisualBasic里Microsoft大概送給了我們兒

百個(gè)上述前三類文件,它們的路徑通常是:c:\vb\bitmaps、c:\vb\icons、

c:\vb\mctafile?它們的主要屬性行:

1,設(shè)置PictureBox和ImageBox的Picture屬性

(1)單擊PictureBox或ImageBox。

(2)按F4鍵打開(kāi)屬性窗口。

(3)單擊Picture屬性。

(4)單擊設(shè)置框右邊的省略號(hào),VisualBasic將顯示LoadPicture對(duì)話框“

(5)選擇用戶需要的文件,單擊Ok鍵。

則VisualBasic將圖形裝入PictureBox或ImageBox,如果想在程序運(yùn)行期

間裝入或刪除圖形,就需要用程序代碼來(lái)實(shí)現(xiàn)了。我們可以使用LoadPicture

函數(shù)。例:

裝入圖形

imgMyHand.Picture=LoadPicture("c:'graphic7hand.bmp'')

刪除圖形

imgMyHand.Picture=LoadPicture("”)

2,PictureBox和ImageBox的BorderSlyle屬性

如同正文框和標(biāo)簽一樣,你可以設(shè)計(jì)PictureBox和ImageBox的邊框。

3,Stretch屬性和AutoSi/c屬性

ImageBox只有Stretch屬性,而PictureBox只有AntoSize屬性。

AutoSize屬性設(shè)為True,則PictureBox改變自己的大小來(lái)適應(yīng)其中的圖形。

Stretch屬性設(shè)為True,則ImageBox中的圖形符改變自己的大小來(lái)適應(yīng)外

面的邊框。

§7Line和Shape控件

總有一些除了裝飾作用沒(méi)有別的功能的東西。如Line和Shape控件。

I,Line和Shape的Bordei<olor屬性

一般來(lái)說(shuō)邊界顏色是黑的,但你也可顯示你喜愛(ài)的顏色。在屬性窗口里單

擊BorderCclor屬性,再單擊省略號(hào),VisualBasic將顯示一塊調(diào)色板,在調(diào)色

板里選擇你喜愛(ài)的顏色:

2,Line和Shape的BordcrWidth屬性

這個(gè)屬性決定線的粗細(xì)。

3,Line和Shape的BorderStyle屬性

這個(gè)屬性決定稅的輪廓.

4,Shape的FillSlyle屬性

在形狀中我們可能更加喜歡實(shí)心的樣廣,這也可以做到。

我們已經(jīng)了解了窗體,菜單,及十種不同的控件,這正是Windows的基本

元素,再加上它們的各種屬性,就可以畫(huà)出各式徉樣的用戶界面了!

§6&§7總結(jié):Image、Shape和Line控件有時(shí)被稱作輕量圖形控

件。它們需要較少的系統(tǒng)資源,因此比PictureBox控件顯示得快并且包含

PiclurcBox中可用的屬性、方法和事件的子集。每一個(gè)控件都適用「?一個(gè)特

定的目的。

1、其它控件的容器:PictureBoxPrinting或graphics方法:PictureBox

3、顯示圖片Image或PiclurcBox4、控件顯示簡(jiǎn)單圖形元素:Shape或Line

控件

第三章編程的基礎(chǔ)

在我們?cè)O(shè)計(jì)完用戶界面后,我們就將開(kāi)始了編寫(xiě)指令代碼的過(guò)程。這是一

個(gè)相對(duì)?枯燥但卻是必須的過(guò)程。

§IVisualBasic編程概述

一、事件驅(qū)動(dòng)應(yīng)用程序

簡(jiǎn)單地說(shuō)就是當(dāng)事件發(fā)生時(shí)程序才工作,否則程序?qū)⒌却录陌l(fā)生。在

事件疆動(dòng)程序中,用戶的操作或系統(tǒng)事件執(zhí)行一個(gè)事件過(guò)程,這樣.程序執(zhí)

行的順序就由哪一個(gè)事件的發(fā)生決定,由用戶的操作決定。就是用戶管理,

代碼響應(yīng)。

二、事件過(guò)程

用戶界面對(duì)事件響應(yīng)的三個(gè)部分是:

L窗體

2.控件

3,菜單

編寫(xiě)程序代碼的通常過(guò)程是:

I,確定哪一個(gè)對(duì)象(窗體,控件或菜單)做出反應(yīng)一一單擊此對(duì)象選中它:

2,打開(kāi)代碼窗口--簡(jiǎn)單的方法是按FaJsc7鍵或者雙擊對(duì)象:

3,找到響應(yīng)的事件;

HI工程1Teel(r?a一同日

[,?r.V!!▼]

PrirtteSubTom.bjadO

tod$nk

代碼窗口的Qbjeci列表框可以選擇對(duì)象,旁邊的Proc列表框可以選擇對(duì)象

的事件.如果事件已經(jīng)有了代碼的話,那么在Pmc列表框里.這個(gè)事件名用黑

體顯示??盏氖录a都由兩行組成,如;

PrivateSubForm_Load()

I

EndSub

4,編寫(xiě)程序代碼。

三、變量

程序總是要做三件事:

1,得到數(shù)據(jù):

2,處理數(shù)據(jù):

3,愉出數(shù)據(jù)。

在程序運(yùn)行時(shí),這些數(shù)據(jù)被儲(chǔ)存在變量里,變量可理解為計(jì)算機(jī)內(nèi)存條上

的一個(gè)微觀的東西。一旦關(guān)機(jī),變量就消失了。變量在VisualBasic里有兩種

類型:

1,程序員建立的變量:

2,對(duì)象的屬性往往也看成變量:。

變量必須滿足:

1,字母開(kāi)頭;

2,不超過(guò)40個(gè)字:

3,只包括字母,數(shù)字,下劃線:

4,不是保留字。

創(chuàng)建變量的方法:

I,用Dim語(yǔ)句說(shuō)明它;

2,可以省略聲明語(yǔ)句而用變最聲明字符生成確定類型的變屬。在程序執(zhí)行

時(shí)若要生成變量并指定數(shù)據(jù)類型,可加入下表所示的變星聲明字符后綴.

符數(shù)據(jù)類舉例

號(hào)型

$SiringAS.message

IcxtS

%IntegerCounter%,var%

&LangPopulation&.color

Value%

*1SingleDistance!

#DoubleExactDistance#

3,把一個(gè)值賦給一個(gè)名稱,ViMialBasic就把這個(gè)名稱看成變量。

Dim語(yǔ)句的語(yǔ)法是:

DimVariablcNamcAsType

例如:DimMyName

AsType部分可以省略,它涉及到我們將要講的關(guān)于數(shù)據(jù)類型的問(wèn)題。Dim

語(yǔ)句的作用是聲明變量并分配存儲(chǔ)空間。

賦值語(yǔ)句的語(yǔ)法是:VariableName=Value或VariableNaineI=

VariableName2

與數(shù)學(xué)中的等號(hào)意義不同,這里等號(hào)只表示把后者的值賦給前者,所以,A

=A+1在VisualBasic里是合法的。例如:cmdExit.Caption="Exit”

(這是一個(gè)改變對(duì)象屬性的例子)

四、數(shù)據(jù)類型

變量可以存放數(shù)字或字符申等東西,但是MyName變量并不需要存放數(shù)字,

所以你可以限制存放的數(shù)據(jù)類型。你可以規(guī)定MyNanic只能字符中。Visual

Basic提供了七種數(shù)據(jù)類型:

I.整型(Integer)

2字節(jié)整數(shù),標(biāo)識(shí)符(同上面的變最聲明字符)為百分號(hào)(%),范圍從-3276H

到32767,運(yùn)算很快。

2.長(zhǎng)整型(Long)

4字節(jié)整數(shù),標(biāo)識(shí)符為&,范圍從-2147483648到2147483647,運(yùn)算很快。

3.單精度型(Single)

4字節(jié)浮點(diǎn)數(shù),標(biāo)識(shí)符為!,范圍可達(dá)38位數(shù)字,前7位可靠,運(yùn)算比整型

和長(zhǎng)整型慢.

I.雙精度型(Double)

8字節(jié)浮點(diǎn)數(shù),標(biāo)識(shí)符為#,范閨可達(dá)300多位,但是可靠的只有前16位

數(shù)字。

5.字符串型(Suing)

標(biāo)識(shí)符為$,在32位版本的VisualBasic4.0中,字符串可容納高達(dá)200兆

字節(jié)的內(nèi)容。

6.貨幣型(Currency)

8字節(jié)定點(diǎn)數(shù),標(biāo)識(shí)符為@,小數(shù)點(diǎn)右邊4位,左邊15位。

7.F1期型(Date)

用于存放日期,范困從#癡11婚1,100#到#口8。址仃319999#,日期的格式

取決于系統(tǒng)的設(shè)定,賦值方法是:New=#Januar)-1,2000#。

%,字節(jié)型(Byte)

VisualBasic4.0新增加的數(shù)據(jù)類型,用J?存放0到255的整數(shù).

9,布爾型(Boolean)

只內(nèi)True或False兩個(gè)值。

io,變體型(Varianl)

如果你不告訴VisualBasic你的變量是什么類型,VisualBasic就自動(dòng)把它

看成變體型。變體型的意思就是它沒(méi)有類型,或者是任何類型.如果聲明了

Viirianl變量而未賦值,則其值為Empty。

例如:DiniMyNameAsSiring

事實(shí)上,語(yǔ)句DimMyName只是將MyNamc變昂:聲明為變體類型罷了,因

為變體類型是VisualBasic的缺省類型。但是,我們使用數(shù)據(jù)類型的原因是什

么呢?

I,使用最小的數(shù)據(jù)類型可節(jié)省內(nèi)存:

2,程序員可以容易地找出每一變量所存放的數(shù)據(jù)類型;

3,可以防止數(shù)據(jù)類型存放錯(cuò)誤引起的錯(cuò)誤。

例如:

PrivateSubForm_Load()

DimMyNameAsString

MyNamc="DongSharT

EndSub

變換變量類型

有時(shí)需要將一種變量類型變成另一種變量類型,卜表列出了進(jìn)行變量類型

轉(zhuǎn)換的函數(shù):

函數(shù)說(shuō)明函數(shù)說(shuō)明

Cboo將變?cè)兂刹糃Lng將變?cè)兂砷L(zhǎng)

1爾值整型值

Cbyl將變?cè)兂勺諧Sng將變?cè)兂蓡?/p>

e節(jié)值精度值

CCur將變?cè)兂韶汣Sir將變?cè)兂勺?/p>

幣型值符串值

CDai將變?cè)兂扇誄var將變?cè)兂勺?/p>

e期值體值

CDbl將變?cè)兂呻pCVE將變?cè)兂慑e(cuò)

精度值rr誤值

Clnt將變?cè)兂烧?/p>

型值

Vai:將變量轉(zhuǎn)成數(shù)值型,從左至右轉(zhuǎn),直到

遇到第一個(gè)非數(shù)字為止。

Str:將變量轉(zhuǎn)成字符型,會(huì)在最前保留」符

號(hào)位,正號(hào)時(shí)前為空格.__________________

Format:將按格?式返回字符。StrConv:

轉(zhuǎn)換字符編碼

例加要將如下的初始化變量:

DimAAsInteger

變成雙精度值,可用卜列函數(shù):

B=CDbl(A)

用戶自定義的數(shù)據(jù)類型……記錄

保存多個(gè)相同或不同類型數(shù)值的結(jié)構(gòu)稱為記錄(record)。

在VISUALBASIC中定義記錄,用Type語(yǔ)句,其語(yǔ)法如卜?:

TypevarTypc

Variable1AsvarType

Variable?Asvaffypc

VariablcnAsvarTypc

EndType

例如定義一個(gè)名為CheckRecord的記錄:

TypeClieckRcxord

CheckNumbcrasInteger

CheckDateasDate

CheckAmountasSingle

EndType

CheckRecord結(jié)構(gòu)可以像普通變量類型一樣使用。要定義這個(gè)類型的變員,

使用如下語(yǔ)句:

Dimcheck1AsCheckRecord

要對(duì)結(jié)構(gòu)的各個(gè)字段訪問(wèn),可使用如下語(yǔ)句:

check1.Che£,kNuinber=l23

check1.CheckDate=M)8/l4/1996#

check1.ChcckAmoiint=24().00

強(qiáng)制的變量聲明

VisualBasic并不要求變量聲明,但對(duì)于編寫(xiě)大型應(yīng)用程序時(shí).變量聲明的

確很有好處。

因此VisualBasic提供強(qiáng)制聲明的方法,只要在窗體或模塊的聲明部分加

上一條語(yǔ)句:

OptionExplicit

這個(gè)語(yǔ)句使編譯器檢查每個(gè)變量的聲明,如果要用的變量沒(méi)有聲明,則發(fā)

出一個(gè)錯(cuò)誤消息!

數(shù)組

單個(gè)變吊:只能存放單個(gè)澳體,而數(shù)組可以存放一組相關(guān)的數(shù)據(jù)。像變量一

樣,數(shù)組有名稱,存放在數(shù)組中的數(shù)值通過(guò)一個(gè)索引來(lái)訪問(wèn),

數(shù)組的定義必須用Dim諳句聲明,如下:

DimNan心(9)AsString也可以不指定數(shù)據(jù)類型

Names是保存了了個(gè)元素的數(shù)組,Nan心(0)是第?個(gè)元素,Names⑼是最

后一個(gè)元素。數(shù)組元素的賦值如下:

Names(0)="John"

Names(I)="Tom"

Names(9)="XionghuiM

數(shù)組的第一個(gè)元素的索引可以不是0,可以在Dim語(yǔ)句中指定卜.限:

DimNames。lb16)

DimNan心(5To16)

動(dòng)態(tài)數(shù)組

有時(shí)可能不知道需要多大的數(shù)組,這時(shí)可以生成動(dòng)態(tài)數(shù)組,其長(zhǎng)度可以

在運(yùn)行程序時(shí)改變。定義動(dòng)態(tài)數(shù)組,和平常一樣用Dim語(yǔ)句(或Private和

Public),但不要指定長(zhǎng)度(或維數(shù)):

DimDynArray。

后面等能確定維數(shù)的時(shí)候,再用ReDim語(yǔ)旬重新確定實(shí)際長(zhǎng)度(或維數(shù)):

ReDimDynArray(UserConnt)

ReDim語(yǔ)句只能出現(xiàn)在過(guò)程之中,它是可執(zhí)行語(yǔ)句。

但每次執(zhí)行ReDim語(yǔ)句,數(shù)組中原先存放的所有當(dāng)前值會(huì)消失。但有時(shí)可

能想改變數(shù)組的長(zhǎng)度,而不損失原有的數(shù)據(jù),幸好VisualBasic提供了Preserve

關(guān)鍵字,它就能作到!例如下面語(yǔ)句將數(shù)組加大一個(gè)元素而不改變?cè)袛?shù)據(jù):

RcDimPreserveDynArray(Ubound(DynArray>+1)

由Fubound。函數(shù)只能返回靜態(tài)數(shù)組或已經(jīng)重定義上限的數(shù)組上.標(biāo),否則將

出錯(cuò)。所以我們常使用:

Dimarr()

???

Redimarr(O)

Redimpreservearr(ubound(arr)+l)

這樣ubound()取得的上標(biāo)即數(shù)組成員數(shù),實(shí)際上是將arr(O)閑置,將有效的

數(shù)組數(shù)據(jù)寫(xiě)入arr(l)之后的成員中。

清除數(shù)組

Erasearraylist,參數(shù)為數(shù)組列表,arrayLarray2該語(yǔ)句清空并輕

放數(shù)組,一般用于動(dòng)態(tài)數(shù)組。

五、變量的使用范圍

VisualBasic的變量行三種使用范圍。

1,局部變量;

2,模塊級(jí)變量,也可以叫做窗體級(jí)變量,因?yàn)榇绑w和模塊是同級(jí)的;

3,全局變量。

局部變量只存在「說(shuō)明它的過(guò)程里,為說(shuō)明一個(gè)局部變量,應(yīng)在一個(gè)事件

過(guò)程中說(shuō)明。

模塊級(jí)變量可存在于這個(gè)窗體或模塊中,可以被所有窗體內(nèi)的事件過(guò)程所

引用和改變,說(shuō)明模塊級(jí)變量的方法是:

1,按F7鍵打開(kāi)代碼窗口;

2,在Objeci列表框中選擇(general);

3,在Proc列表框里選擇(declarations);

4,用Dim語(yǔ)句說(shuō)明。

全局變量從程序開(kāi)始時(shí)存:在至程序結(jié)束,不過(guò)全局變量的錯(cuò)誤也許會(huì)導(dǎo)致

致命的鉗誤,你不得不讀遍程序來(lái)4找到底在說(shuō)明地方改變了全局變量。創(chuàng)

建全局變量的方法是:

I,從Insert菜單里選Module項(xiàng),這個(gè)命令為一個(gè)BAS模塊文件顯示代碼

御口;

2,在Object列表框中選擇(genend):

3,在Proc列表框中選擇(dedara〔ions):

4,用Public語(yǔ)句說(shuō)明全局變量。

六、算術(shù),邏輯,比較運(yùn)算符

1,算術(shù)運(yùn)算

盡管一臺(tái)上萬(wàn)元的計(jì)算機(jī)看來(lái)很高科技,但它在算術(shù)運(yùn)算方面并不比一個(gè)

幾十元的計(jì)算器強(qiáng)多少。

運(yùn)算符運(yùn)算運(yùn)算符運(yùn)算

+加(也是字符串\整數(shù)除

拼接)

-減(也是取負(fù)值)Mod取余數(shù)

*乘A乘方

/浮點(diǎn)數(shù)除&字符中拼接

2,邏輯運(yùn)算

邏輯運(yùn)算是對(duì)True和False進(jìn)行操作的運(yùn)算,VisualBasic將True的值看成

-I,將False的值看成0。

運(yùn)算符使用意義

A量

nd1And變兩個(gè)量均為True,才返回True

最2

or21Or變星只要有一個(gè)量為True,返回值

就為True

r艮

x()1Xor變兩個(gè)最一個(gè)為True,一個(gè)為False

量2

才返回True

1Not變簡(jiǎn)單地把True變?yōu)镕alse,把

N(m2

False變?yōu)門rue

3,比較運(yùn)算

比較運(yùn)算是比較兩個(gè)數(shù)或字符串的大小。

運(yùn)算符意義運(yùn)算符意義

小于>=大于等于

<=小于等于=等于

>大于<>不等于

說(shuō)明:變體型變量必須使用Variype(Var)判斷其是否為空,

如返回1則為空。

有時(shí)候,史雜的運(yùn)算會(huì)把我們搞暈,良好的習(xí)慣是加括號(hào)。如:x=(5*(8

+9))A2,則計(jì)算機(jī)先處理(8+9),再處理(5*(8+9)),最后才是乘方。

再如:x=(5*6)/2,這個(gè)括號(hào)加得似乎沒(méi)什么意義,但它使我們清晰地知

道是從哪兒開(kāi)始運(yùn)算的,

七、字符串操作

有時(shí)程序需要對(duì)字符串進(jìn)行操作,比如從一個(gè)文件的完整路徑名中找出文

件的名稱。卜面介紹幾個(gè)常用的函數(shù)C

1,Len函數(shù)

返回字符串的長(zhǎng)度。如Length=Len(、'$lring"),則Length=6a

2,LCase函數(shù),UCase函數(shù)

LCase函數(shù)把字符串變?yōu)樾?xiě)字母。UCase函數(shù)把字符串變?yōu)榇髮?xiě)字母。

如:

x=LCase(“DONGSHAN”)

x=UCase("visualBasic")

3,Left函數(shù),Right函數(shù)

語(yǔ)法是:

[.eft(VariablcName.N)

Right(VariableName.N)

Left函數(shù)從字符串的左邊提出N個(gè)字符。Righl函數(shù)從字符串的右邊提出N

個(gè)字符。

4,Mid函數(shù)

語(yǔ)法是:

x=Mid(VariableName.n,rn>

Mid函數(shù)從VariableName字符串的第n個(gè)字符開(kāi)始取出m個(gè)字符。

5,Insir函數(shù)

語(yǔ)法是:

Instr(VariableName1,VariableName?)

Instr函數(shù)從VariableNameI里找出VariableName2的位置。如;x=Instr

(“ABCD”「CD”),此時(shí)x=3,如果計(jì)算機(jī)沒(méi)找到要找的字符串,則這個(gè)函數(shù)

返回0。

6,LTrim函數(shù),RTrim函數(shù),Trim函數(shù)

LTrim函數(shù)將去掠字符串前的空格。

RTrim函數(shù)將去掠字符串后的空格.

Trim函數(shù)將去掉字符事前后的空格。如:x=RTrim(“John”),此時(shí)

x="John”。

7,Vai函數(shù)

語(yǔ)法是:

x=Vai(VariableName)

這個(gè)函數(shù)將字符串里的數(shù)字字符串轉(zhuǎn)化為數(shù)字。如:Y=Vai(“123”),則Y

=123。

當(dāng)VisualBasic發(fā)現(xiàn)卜一個(gè)字符不是數(shù)字時(shí)就停止繼續(xù)轉(zhuǎn)化。

8,Sti?函數(shù)

與Vai函數(shù)相反,Str函數(shù)將數(shù)字轉(zhuǎn)化為字符串。

語(yǔ)法是:

x=Str(VariableName)

八、常量及注釋

1,使用常量

如果我們編一個(gè)程序從每筆收入中拿出40%用于飯卡的消耗,則在程序中

我們會(huì)總是用到0.4這個(gè)數(shù)字。這時(shí)糧食漲價(jià)了,我們不得不把0.4全都改成

0.5,這就顯得非常麻煩。我們本可以定義并使用一個(gè)常量為0.4.在漲價(jià)時(shí)把

它小小調(diào)整一下就可以了。常量命名的要求與變量一樣,常量的使用范圍也

與變量一樣,分為:局部常量(在過(guò)程里用Const說(shuō)明)、模塊級(jí)常量(在

窗體,模塊的尚明區(qū)用Const說(shuō)明)、全局常量(在模塊的聲明區(qū)用PublicConst

說(shuō)明)

2,使用注釋

用...注釋。如:"ThisSubisusedtogetWindowsversion

撇號(hào)右邊的東西VisualBasic通常用綠色的字來(lái)已示,而liVisualBasic將

忽略注釋的東西.在VisualBasic4.0所附的示例程序里使用了大量的注釋,

這樣使其他人(也包括自己)能更好地讀懂程序,所以使用注釋是一個(gè)好習(xí)

慣。

注釋的忽略性也有一些小用處,如:

x=(3.5A2-4)*(5+6,73*7\2)-10.89

現(xiàn)在你需要測(cè)試這一語(yǔ)句是否是必要的,r是你把它刪除,再運(yùn)行著是否

能得出正確的答案,如果它是不必要的,那就很順利,如果它是必要的,你

就不得不痛苦地再輸入一遍而II還有輸錯(cuò)的可能?,F(xiàn)在你可以選擇把它注擇

掉,這樣程序運(yùn)行將忽略它的存在,也可達(dá)到上面測(cè)試的目的。

§2VisualBasic的語(yǔ)句

一、條件選擇語(yǔ)句

人們面臨選擇的時(shí)候精神會(huì)變得脆弱,這就是為什么我們總是輕信偷看來(lái)

的答案。因此,選擇對(duì)于人類來(lái)說(shuō)是一件兔雜的事情.而對(duì)于計(jì)算機(jī)來(lái)說(shuō),

則非常簡(jiǎn)單。它頭腦簡(jiǎn)單,因而永遠(yuǎn)不會(huì)發(fā)出哈姆雷特式的疑問(wèn)——“是生,

還是死?”

L條件式

條件式必然代表一個(gè)值,是真(True)或者是假(False)計(jì)算機(jī)可以檢測(cè)

出這個(gè)值以做出相應(yīng)的行動(dòng)。卜面就是判斷的例子,其中加卜.劃線的部分就

是指條件式。

IfLove=TrueThen...

勺之相同的商略的形式是:

IfLoveThen...

而lfLove=FalseThen...IfNolLoveThen…的意義是相同的.

條件式中可加入邏輯運(yùn)算符,如:

Ifxv20Andx>15Then表示當(dāng)15vxv20程序?qū)⒆鲠懿访础?/p>

Ifx<15Orx>2()Then表示當(dāng)x<l5或x>20時(shí)程序?qū)⒆鍪裁础?/p>

2,If-Then語(yǔ)句

語(yǔ)法是:

IfConditionThenInstructiun

例如:lfn>25ThentxtABC.Text="ABC'*

3,If?Then?EndIf語(yǔ)句

IfConditionTiien

Instruction1

Instniction2

EndIf

這種結(jié)構(gòu)可指示計(jì)算機(jī)執(zhí)行一串語(yǔ)句。

%If-Then-Else語(yǔ)句

IfConditionThen

Instructions!

Else

Instructions2

EndIf

這種結(jié)構(gòu)指示計(jì)算機(jī)在條件不成立時(shí)應(yīng)該做的事,這樣保證了計(jì)算機(jī)至少

執(zhí)行一些語(yǔ)句。

5?If?Then-ElseIf語(yǔ)句

IfCondition1Then

Instructions1

ElselfCondition2Then

Instructions2

ElselfCondition3Then

Instructions3

Else

Instructions4

EndIf

類似這樣的完整的語(yǔ)句可做出多次判斷,乂保證計(jì)算機(jī)至少執(zhí)行一些代碼。

6,SelectCase-case...case...endselect語(yǔ)句

被選擇的值為許多定值時(shí),這個(gè)語(yǔ)句就更有用一些。

SelectCaseVariableNamc/objcct

CaseValue1,可以是變量值或?qū)ο竺?/p>

Instructions1

CaseValue2

Instructions2

Caseelse'除上述情況外的其他情況

Instructions3

EndSelect

7,嵌套結(jié)構(gòu)

我們可以把許多各式各樣的條件語(yǔ)句嵌套在?起,而氏這種戰(zhàn)套在理論上

沒(méi)有限制。但事實(shí)上嵌套使用汨越少,代碼就越容易被理解。在俄套時(shí)最好

使用便于觀察的縮排的格式。如:

SelectCaseGrade

Case"95"

]fClass="3r,The!i

Dorm="1106-1108w

Else!fClass="33"Then

Donn=-11()4-IIOS"

EndIf

EndSelect

7,選擇函數(shù)

llf(expression?)根據(jù)表達(dá)式邏輯值,返Pl兩個(gè)參數(shù)中的一個(gè)

Choose(exprcssion,?...)根據(jù)表達(dá)式整數(shù)值,返回多個(gè)參數(shù)中的對(duì)應(yīng)位

置的那個(gè)。

二、循環(huán)語(yǔ)句

計(jì)算機(jī)擅長(zhǎng)反復(fù)地做一件事,循環(huán)語(yǔ)句將發(fā)揮它的這種優(yōu)勢(shì)。

1,Do-Loop循環(huán)

Do-Loop循環(huán)基本上是一個(gè)死循環(huán),所以需要在循環(huán)時(shí)判斷一些條件。

(1)DoWhile循環(huán)(當(dāng)Condition條件為真時(shí)執(zhí)行循環(huán))。

DoWhileCondition

InstrucUons

Loop

While也可以放在Loop語(yǔ)句匕

(2)Do-LoopWhile循環(huán)(先執(zhí)行一次程序體,再判斷條件為真則繼續(xù)

執(zhí)行循環(huán))。

Do

Instructions

LoopWhileCondition

這兩種循環(huán)的不同之處是:DoWhile循環(huán)先判斷條件,所以,D。While循

環(huán)可能一次都不執(zhí)行。DoLoopWhile循環(huán)先執(zhí)行指令,再判斷循環(huán)條件。所

以D。LoopWhile循環(huán)至少執(zhí)行一次指令。但它們都是當(dāng)一定條件為其時(shí)的

循環(huán)。

(3)DoUntil循環(huán)(條件為其即“退出”循環(huán))。

DoUntilCondition

Instructions

Loop

DoUntil先判斷條件,所以循環(huán)可能一次都不執(zhí)行,它是當(dāng)一定條件為假

時(shí)的循環(huán).

DoUntil等同于:

DoWhileNotCondition

Instructions

Loop

(4)Do-LoopUntil循環(huán)(執(zhí)行程序體,直到條件為真時(shí)退出)。

Do

Instructions

LoopUntilCondition

DoLoopUntil先執(zhí)行指令再判斷循環(huán)條件,所以指令至少被執(zhí)行一次。Do

LoopUntil是當(dāng)一定條件為假時(shí)的循環(huán)。

2,計(jì)數(shù)的循環(huán)For-Next

(I)For-Next循環(huán)必須有一個(gè)控制變垃,這個(gè)控制變量?般為整型。語(yǔ)

法是:

ForCounter=StartToEnd

Instructions

NextCminter

這里的Counter就是控制變量。如果想運(yùn)行5次,可用卜.而的循環(huán):

Fori=1To5

Instructions

Nexti

這時(shí),每循環(huán)一次,i的值就加L

(2)向前向后計(jì)數(shù)

ForCounter=StartToEndStepIncrement

Instructions

NextCounter

Incremeni表明每次循環(huán)控制變量所加的值,如下面代碼也可循環(huán)5次:

Fori=5To1Step-1

Instructions

Nexti

只有當(dāng)Counter<=End時(shí)循環(huán)才執(zhí)行,當(dāng)Counter>End的時(shí)候循環(huán)就不

執(zhí)行了。所以

Fori=1To10Step7

Instruction,

Nexti

循環(huán)將執(zhí)行兩次,一次是當(dāng)i=l時(shí),一次是當(dāng)i=8時(shí)。

最好不要在循環(huán)內(nèi)改變控制變量的值,這樣往往會(huì)導(dǎo)致邏輯上的錯(cuò)俁。

(3)對(duì)象的計(jì)次循環(huán)

Foreachelemetuin...next,針對(duì)一個(gè)數(shù)組或集合中的每個(gè)元素,重

復(fù)執(zhí)行一組遭包。

可參見(jiàn)Csdn中Foreachnext語(yǔ)句或Primer對(duì)象與Primers集合。

3,與條件語(yǔ)句一樣,循環(huán)語(yǔ)句也可以嵌套。如:

DoWhileC?ondition

Fori=1To5

Insiruclions

Nexti

Loop

循環(huán)總是先從內(nèi)部開(kāi)始的.比較:

FoH=1To4Ebd=11()4

Fori=1To5Forj=ITo5

NextiNexii

NexiiNexti

是允許的這種For-Next的纏繞是不允許的

4,從循環(huán)中快速退出

通過(guò)使用命令ExilDo和ExitFor,我們可以在循環(huán)未結(jié)束前跳出循環(huán).

但我們應(yīng)該保證所需的動(dòng)作完成后再跳出來(lái),否則也許會(huì)遇到新的錯(cuò)誤。而

且不要試圖用Goto語(yǔ)句從循環(huán)外跳入循環(huán)。

下面的代碼可以檢測(cè)出3至2()之間的質(zhì)數(shù)。其中使用r循環(huán)的抿套及條

件語(yǔ)句,并且當(dāng)發(fā)現(xiàn)i不是質(zhì)數(shù)時(shí)立即用ExitFor轉(zhuǎn)向?qū)ο乱粋€(gè)數(shù)的檢測(cè).

SubF;onn_Click()

Dimi.j,xAsInteger

Fori=3To2()

x=False

Forj=2Toi-1

If(iModj)=0ThenExitFor

Ifj=i-1Thenx=True

Nextj

IfxThenPrimi

Nexti

EndSub

5,遍歷對(duì)象(如:所有打印機(jī)、窗體等)

使用ForEachobjectIncollection語(yǔ)句來(lái)遍歷集合中的對(duì)象

(1)、遍歷所有窗體

4MDI窗體Load事件中無(wú)法列出子窗體,因?yàn)樗鼈冞€沒(méi)加載。

,判斷是否mdi子窗體只能看name屬性,因?yàn)镸DI窗體沒(méi)有Mdichild屬性

,方法一(遍歷含MDI窗體)

DimfrmAsvb.Fomi

ForEachfnnInForms

Debug.Primfrm.Caption

Next

,方法二(遍歷不含MDI窗體)

Dimi

Fori=Forms.Count-1lbIStep-I

Dchug.PrintF0rms(i).Caption

Next

(2)、遍歷打印機(jī)(VBMSDN自帶例程)

DimXAsPrinter

ForEachXTnPrinters

IfX.Orientation=vbPRORPortraitThen

'設(shè)定為系統(tǒng)缺省打印機(jī)。

SetPrinter=X

'終止杳找打印機(jī)。

ExitFor

EndIf

Next

三、建立過(guò)程與函數(shù)

如同常量的定義一樣,行時(shí)不僅僅是幾個(gè)數(shù)字反復(fù)出現(xiàn)在程序中,而且是

很多段代碼在做幾乎同樣的事,如果有?些通用的代碼可供調(diào)用的話,那么

程序就會(huì)筒練得多,而」[更為清晰,這就是過(guò)程與函數(shù)“過(guò)程和函數(shù)保存在

FRM文件和BAS文件里。若一個(gè)過(guò)程保存在BAS文件里,那么這個(gè)過(guò)程可

供程序里所有的代碼調(diào)用:如果?個(gè)過(guò)程保存在FRM文件里,那么這個(gè)過(guò)程

只能波本窗體里的代碼調(diào)用到。創(chuàng)建過(guò)程或函數(shù)的簡(jiǎn)單.方法是選擇Inwrt菜單

的Procedure項(xiàng)。過(guò)程名,函數(shù)名的命名規(guī)則與變量名,常吊名的命名規(guī)則一

樣。

1,過(guò)程結(jié)構(gòu)

Subsubname(arguinentlisi)

Instructions

EndSub

argumentlist指的是參數(shù)列表,所謂參數(shù),就是指過(guò)程操作所需的指導(dǎo)條件。

如下而過(guò)程:

SubPrintHello(nAsInteger)

DimiAsInteger

Fori=1Ton

Print"Hello"

Nexti

EndSub

n參數(shù)就是指導(dǎo)這個(gè)過(guò)程打印“Hello”的個(gè)數(shù).當(dāng)有許多參數(shù)時(shí),可用

將它們分開(kāi)。

如果在Form_Click事件過(guò)程里調(diào)用PrintHello過(guò)程,就可用鍵入:

CallPrintHello(5),其中Call是VisualBasic的保留字

PrintHello5

后-一種省略Call和括號(hào)的方法使這個(gè)過(guò)程看起來(lái)更象個(gè)VisualBasic的

語(yǔ)句.所以我們可以這樣認(rèn)為:建立好的過(guò)程可以當(dāng)作語(yǔ)句來(lái)使用。

2,函數(shù)結(jié)構(gòu)

函數(shù)結(jié)構(gòu)與過(guò)程結(jié)構(gòu)基本上是一樣的,

Functionfunctionnanie(argumcntlist)Astype

Instructions

EndFunction

函數(shù)就是有返回值的過(guò)程,它自己是有數(shù)據(jù)類型的。但Astype部分是可

以省略的,這時(shí)函數(shù)的返回值將是變體類型的值。在調(diào)用沒(méi)仃參數(shù)的函數(shù)時(shí)

也必須加括號(hào)。如:

Functionlotal(aAsInteger,bAsInleger.cAsInteger)AsInteger

Total=a+h+c

EndFunction

調(diào)用時(shí)可以這樣:

Answer

溫馨提示

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