visual basic入門教程的資料_第1頁(yè)
visual basic入門教程的資料_第2頁(yè)
visual basic入門教程的資料_第3頁(yè)
visual basic入門教程的資料_第4頁(yè)
visual basic入門教程的資料_第5頁(yè)
已閱讀5頁(yè),還剩529頁(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入門教程的資料第1頁(yè)/共534頁(yè)1.1VisualBasic簡(jiǎn)介VisualBasic是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)機(jī)制的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言。它可用于開(kāi)發(fā)Windows環(huán)境下的各類應(yīng)用程序。它具有簡(jiǎn)單易學(xué)、效率高、功能強(qiáng)大的特點(diǎn),可以與Windows專業(yè)開(kāi)發(fā)工具SDK相媲美。在VisualBasic環(huán)境下,開(kāi)發(fā)人員利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù)、動(dòng)態(tài)鏈接庫(kù)(DLL)、對(duì)象的鏈接與嵌入(OLE)、開(kāi)放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開(kāi)發(fā)Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。第2頁(yè)/共534頁(yè)1.1.1版本區(qū)分VisualBasic有學(xué)習(xí)版、專業(yè)版和企業(yè)版三種版本,以滿足不同層次的開(kāi)發(fā)需要。不同版本編寫(xiě)的應(yīng)用程序大多數(shù)可以在三種版本中通用。學(xué)習(xí)版為VisualBasic的基本版本,適用于初期學(xué)習(xí)者及使用VisualBasic開(kāi)發(fā)一般應(yīng)用程序的開(kāi)發(fā)人員。專業(yè)版為專業(yè)開(kāi)發(fā)人員提供了功能完備的軟件開(kāi)發(fā)工具。企業(yè)版為專業(yè)編程人員開(kāi)發(fā)程序提供了功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。第3頁(yè)/共534頁(yè)1.1.2VisualBasic的特點(diǎn)1.可視化編程2.面向?qū)ο蟮某绦蛟O(shè)計(jì)3.事件驅(qū)動(dòng)機(jī)制4.強(qiáng)大開(kāi)放的特點(diǎn)第4頁(yè)/共534頁(yè)1.1.3集成開(kāi)發(fā)環(huán)境第5頁(yè)/共534頁(yè)1.1.3集成開(kāi)發(fā)環(huán)境第6頁(yè)/共534頁(yè)1.1.4面向?qū)ο蠊δ軓腣isualBasic4開(kāi)始,用戶可以通過(guò)類模型方式創(chuàng)建和使用對(duì)象。對(duì)象可以被當(dāng)作一個(gè)數(shù)據(jù)和單元的組合,如窗體、數(shù)據(jù)庫(kù)等。VisualBasic對(duì)象可以封裝屬性、方法和事件,創(chuàng)建時(shí)可以重新定義其封裝屬性、方法和事件。VisualBasic對(duì)象可以極大簡(jiǎn)化重復(fù)代碼的編寫(xiě),使開(kāi)發(fā)人員精力集中在程序內(nèi)容而不是數(shù)量龐大的代碼上。VisualBasic后續(xù)版本增強(qiáng)了該功能,并添加了許多新的面向?qū)ο蟮木幊坦δ?。?頁(yè)/共534頁(yè)1.1.5數(shù)據(jù)訪問(wèn)在現(xiàn)代信息技術(shù)高度發(fā)達(dá)的今天,數(shù)據(jù)信息已經(jīng)成為最重要資源之一。VisualBasic為開(kāi)發(fā)人員提供了強(qiáng)大的數(shù)據(jù)訪問(wèn)技術(shù),能夠更快捷、更迅速、更高效地存儲(chǔ)和讀取數(shù)據(jù)信息。VisualBasic提供了更為強(qiáng)大功能來(lái)支持大中型數(shù)據(jù)庫(kù),如Oracle、SQLServer、Sybase等。第8頁(yè)/共534頁(yè)1.1.6Internet功能互聯(lián)網(wǎng)(Internet)在現(xiàn)在通訊日益發(fā)達(dá)的信息世界占據(jù)了重要的地位。VisualBasic提供了許多功能為開(kāi)發(fā)具有互聯(lián)網(wǎng)功能的應(yīng)用程序提供支持和幫助。VisualBasic在開(kāi)發(fā)過(guò)程中可以創(chuàng)建服務(wù)器端的動(dòng)態(tài)HTML(DHTML),使用InternetTransfer控件檢索和傳輸文件,利用WebBrowser控件瀏覽網(wǎng)頁(yè)信息,采用MAPI收發(fā)電子郵件等一系列激動(dòng)人心的功能。第9頁(yè)/共534頁(yè)1.2VisualBasic6安裝本節(jié)將介紹如何安裝VisualBasic6開(kāi)發(fā)環(huán)境。將VisualBasic6的安裝光盤放入計(jì)算機(jī)的光驅(qū)內(nèi),一般情況下計(jì)算機(jī)可以自動(dòng)運(yùn)行其中的安裝程序。如果計(jì)算機(jī)沒(méi)有自動(dòng)運(yùn)行安裝程序,雙擊光盤盤符下的Setup.exe文件,將顯示VisualBasic安裝程序界面,按照安裝程序的提示進(jìn)行相應(yīng)的操作。第10頁(yè)/共534頁(yè)1.3開(kāi)始使用VisualBasic6VisualBasic開(kāi)發(fā)程序使用圖形化界面與用戶交流。本節(jié)介紹如何使用VisualBasic集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)程序界面、設(shè)計(jì)窗體并通過(guò)實(shí)例演示如何使用VisualBasic進(jìn)行應(yīng)用程序開(kāi)發(fā)。第11頁(yè)/共534頁(yè)1.3.1開(kāi)發(fā)界面1.標(biāo)題欄2.菜單欄3.工具欄4.工具箱5.窗體設(shè)計(jì)窗口6.工程資源管理器7.“屬性”面板8.“布局”面板第12頁(yè)/共534頁(yè)1.3.2窗體使用應(yīng)用程序界面是直接面對(duì)用戶的窗體及其他控件。一個(gè)優(yōu)秀的應(yīng)用程序應(yīng)該窗體界面簡(jiǎn)潔、漂亮,控件布局科學(xué)、合理,用戶使用舒適、方便。本小節(jié)重點(diǎn)介紹窗體的使用技巧。窗體布局調(diào)整可以在“格式”菜單中調(diào)整,也可以在“窗體編輯器”工具欄中進(jìn)行編輯。第13頁(yè)/共534頁(yè)1.3.3第一個(gè)程序——Hello,World本節(jié)將創(chuàng)建第一個(gè)程序Hello-World。創(chuàng)建一個(gè)應(yīng)用程序之前,必須明確以下幾個(gè)重要步驟:(1)制定計(jì)劃。(2)創(chuàng)建界面。(3)編寫(xiě)代碼。(4)測(cè)試和調(diào)試程序。(5)生成可執(zhí)行文件。(6)打包文件。第14頁(yè)/共534頁(yè)1.3.3第一個(gè)程序——Hello,World第15頁(yè)/共534頁(yè)1.3.3第一個(gè)程序——Hello,World第16頁(yè)/共534頁(yè)1.3.4文件類型1.工程組和工程文件2.窗體文件3.程序模塊文件4.類模塊文件5.資源文件第17頁(yè)/共534頁(yè)1.3.5編譯可執(zhí)行文件應(yīng)用程序創(chuàng)建后,必須生成可執(zhí)行文件才能發(fā)布給最終用戶。VisualBasic中生成可執(zhí)行文件操作非常簡(jiǎn)單。選擇“文件”|“生成xxx.exe”命令(xxx為工程名稱),彈出“生成工程”對(duì)話框.第18頁(yè)/共534頁(yè)1.4常見(jiàn)問(wèn)題及解答1.將VisualBasic程序安裝光盤放入光驅(qū)內(nèi),為何不自動(dòng)安裝VisualBasic?2.VisualBasic程序安裝后,如何在系統(tǒng)中運(yùn)行VisualBasic程序?第19頁(yè)/共534頁(yè)1.5小結(jié)本章簡(jiǎn)單介紹了VisualBasic基本知識(shí)、安裝步驟、集成開(kāi)發(fā)環(huán)境。本章重點(diǎn)和難點(diǎn)是如何安裝VisualBasic和使用VisualBasic開(kāi)發(fā)應(yīng)用程序界面。讀者需要重點(diǎn)練習(xí)使用VisualBasic集成開(kāi)發(fā)環(huán)境。下一章將介紹數(shù)據(jù)類型、變量和常量。第20頁(yè)/共534頁(yè)第2章數(shù)據(jù)類型、變量和常量數(shù)據(jù)是用來(lái)存儲(chǔ)程序需要調(diào)用的文字、數(shù)值、對(duì)象、圖像等,包括多種類型。變量是程序用來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù)。常量是以字符串形式用來(lái)代替固定數(shù)值。本章內(nèi)容包括:數(shù)據(jù)類型變量常量第21頁(yè)/共534頁(yè)2.1數(shù)據(jù)類型在應(yīng)用程序中VisualBasic將以更高效率來(lái)處理已定義數(shù)據(jù)類型。VisualBasic包含七種數(shù)據(jù)類型,分別為數(shù)值型(Numeric)、字符型(String)、字節(jié)型(Byte)、布爾型(Boolean)、日期型(Date)、對(duì)象型(Object)、變體型(Variant)等。本節(jié)將詳細(xì)介紹七種數(shù)據(jù)類型的定義和特點(diǎn)。第22頁(yè)/共534頁(yè)2.1.1數(shù)值型Numeric1.整數(shù)整型:整型取值范圍為-32678~32677,以2個(gè)字節(jié)(16位)存儲(chǔ),用二進(jìn)制碼表示和參加運(yùn)算。長(zhǎng)整型:長(zhǎng)整型取值范圍為-2147483648~2147483647,以4個(gè)字節(jié)(32位)存儲(chǔ)。2.浮點(diǎn)型(1)單精度型(2)雙精度型(3)貨幣型第23頁(yè)/共534頁(yè)2.1.2字節(jié)型Byte字節(jié)型(Byte)專為存儲(chǔ)二進(jìn)制數(shù)值類型,以1個(gè)字節(jié)來(lái)存儲(chǔ)。如果變量聲明包含二進(jìn)制數(shù),則聲明為Byte數(shù)據(jù)類型的數(shù)組。取值范圍為:0~255。除了減法外,所有對(duì)整數(shù)進(jìn)行處理的運(yùn)算符均可處理該類型。第24頁(yè)/共534頁(yè)2.1.3字符型String字符型(String)為最通用的數(shù)據(jù)類型之一,用來(lái)儲(chǔ)存文本信息。每個(gè)字符對(duì)應(yīng)1個(gè)字節(jié),由ASCII字符序列組成,包括標(biāo)準(zhǔn)的ASCII字符和擴(kuò)展ASCII字符及漢字等。字符型為包含在雙引號(hào)內(nèi)的若干個(gè)字符?!臼纠?-3】顯示不同類型字符串。“”表明長(zhǎng)度為零的字符串為空字符串;“VisualBasic”表明為字母字符串,賦予變量為“VisualBasic”;“Hello,World2008?!北砻鳛榛旌献址9潭ㄗ址畲笕≈捣秶鸀?5535字節(jié);變長(zhǎng)字符串最大取值范圍為0~231。第25頁(yè)/共534頁(yè)2.1.4布爾型Boolean布爾型(Boolean)為邏輯型,以2個(gè)字節(jié)來(lái)存儲(chǔ)。它包含True或False、Yes或No。在程序中一般用于判斷語(yǔ)句,或者聲明該數(shù)值為兩種狀態(tài),如“開(kāi)”或“關(guān)”。第26頁(yè)/共534頁(yè)2.1.5日期型Date日期型(Date)為浮點(diǎn)數(shù)值形式保存,以8個(gè)字節(jié)存儲(chǔ)。默認(rèn)日期范圍為1/1/100~1/1/9999。Windows操作系統(tǒng)下日期范圍為1/1/1980~12/31/2099;時(shí)間范圍為0:00:00~23:59:59。日期型數(shù)據(jù)用來(lái)表示日期類型,格式為:mm-dd-YYYY或者mm/dd/YYYY。在VisualBasic開(kāi)發(fā)應(yīng)用程序中可以定制日期模式:YYYY-mm-dd。(Y或y為年,m為月,d為日)。第27頁(yè)/共534頁(yè)2.1.6對(duì)象型Object對(duì)象型(Object)為保存引用應(yīng)用程序中的對(duì)象,以4個(gè)字節(jié)(32位)來(lái)存儲(chǔ)。它可以用來(lái)引用圖形圖像、Word文件、Excel文件等。如果在運(yùn)行應(yīng)用程序之前,VisualBasic定義該特定類型對(duì)象的屬性和方法,應(yīng)用程序在運(yùn)行時(shí)速度會(huì)更快。第28頁(yè)/共534頁(yè)2.1.7變體型Variant變體型(Variant)能保存所有類型數(shù)據(jù),可以隨時(shí)轉(zhuǎn)換該數(shù)據(jù)為其他類型。變體型可以在程序中直接聲明定義,用戶不必過(guò)多關(guān)注Variant變量中的類型。VisualBasic可以在應(yīng)用程序運(yùn)行時(shí)自動(dòng)進(jìn)行必要的轉(zhuǎn)換。第29頁(yè)/共534頁(yè)2.1.8數(shù)據(jù)類型轉(zhuǎn)換程序開(kāi)發(fā)過(guò)程中,需要將不同數(shù)據(jù)類型進(jìn)行必要的轉(zhuǎn)換。VisualBasic提供了各種類型轉(zhuǎn)換相關(guān)的函數(shù),可以在程序中直接調(diào)用。如果想把某種數(shù)據(jù)類型轉(zhuǎn)換為另外一種類型,必須保證該類型數(shù)值處于待轉(zhuǎn)換數(shù)值有效范圍內(nèi)。轉(zhuǎn)換函數(shù)轉(zhuǎn)換類型中文名稱Cbool()Boolean布爾型Cbyte()Byte二進(jìn)制型Ccur()Currency貨幣型Cdate()Date日期型Cdbl()Double雙精度型Cint()Integer整數(shù)型Clng()Long長(zhǎng)整數(shù)型Csng()Single單精度型Cstr()String字符型Cvar()Variant變體型第30頁(yè)/共534頁(yè)2.2變量簡(jiǎn)介變量在程序執(zhí)行過(guò)程中用以保存臨時(shí)數(shù)據(jù)信息,包含在程序執(zhí)行階段修改的數(shù)據(jù)。變量都有變量名稱,在其作用范圍內(nèi)作為惟一標(biāo)識(shí)存在。第31頁(yè)/共534頁(yè)2.2.1變量作用域聲明變量可以使用Dim、Private、Public、Static作為關(guān)鍵字。以上關(guān)鍵字分別作用于不同的作用域。變量語(yǔ)句聲明位置范圍過(guò)程變量Dim或Static存在于過(guò)程,子過(guò)程或函數(shù)過(guò)程中聲明段聲明變量的過(guò)程、子過(guò)程或函數(shù)模塊變量Private存在于窗體或代碼模塊聲明段窗體或代碼模塊中過(guò)程全局變量PublicMain模塊中聲明段全部應(yīng)用程序第32頁(yè)/共534頁(yè)2.2.2變量命名變量必須要命名后才能賦值。在過(guò)程內(nèi)部聲明的變量,在該過(guò)程執(zhí)行時(shí)才存在。當(dāng)運(yùn)行過(guò)程結(jié)束時(shí),該變量的值自動(dòng)清除。變量命名必須符合以下規(guī)定:變量名必須以字母開(kāi)頭,不能以數(shù)字或下劃線開(kāi)始。變量不能包含嵌入的句號(hào)、空格或者其他停頓符號(hào)。變量長(zhǎng)度不得超過(guò)255個(gè)字符。變量名不能是VisualBasic的保留字,如Name、For等。第33頁(yè)/共534頁(yè)2.2.2變量命名變量類型簡(jiǎn)化前綴標(biāo)準(zhǔn)化前綴整數(shù)(Integer)NInt長(zhǎng)整型(Long)LLng單精度型(Single)FSng雙精度型(Double)DDbl貨幣型(Currency)CCur字符串型(String)SStr布爾型(Boolean)BBln對(duì)象型(Object)OObj變體型(Variant)VVar第34頁(yè)/共534頁(yè)2.2.3變量類型變量類型包含2.1小節(jié)中所有的數(shù)據(jù)類型。除此之外,根據(jù)應(yīng)用程序需要還可以創(chuàng)建用戶自定義的類型。自定義類型聲明使用Type語(yǔ)句。第35頁(yè)/共534頁(yè)2.2.4靜態(tài)變量程序運(yùn)行時(shí)變量保存臨時(shí)數(shù)據(jù)。一旦程序終止,變量將自動(dòng)被VisualBasic刪除。下一次程序運(yùn)行時(shí)該變量將重新被初始化。但是,應(yīng)用程序在運(yùn)行時(shí)也有可能需要保留變量數(shù)據(jù)。VisualBasic可以通過(guò)聲明靜態(tài)變量來(lái)保存記憶變量數(shù)值。Static[varName]as[type]第36頁(yè)/共534頁(yè)2.3變量聲明VisualBasic中聲明是事先將變量定義為保存數(shù)據(jù)內(nèi)容。在變量使用之前,進(jìn)行聲明是一個(gè)重要的編程技巧。變量聲明后可以在程序中更高效的使用變量。聲明包括顯式聲明和隱式聲明。本節(jié)將分別介紹如何顯式聲明、隱式聲明和使用定長(zhǎng)字符串。第37頁(yè)/共534頁(yè)2.3.1顯式聲明顯式聲明要求在程序中使用變量前,強(qiáng)制聲明該變量。如果不聲明該變量,將出現(xiàn)錯(cuò)誤提示。顯式聲明使用OptionExplicit語(yǔ)句。選擇“工具”|“選項(xiàng)”命令,彈出“選項(xiàng)”對(duì)話框。選擇“編輯器”選項(xiàng)卡,復(fù)選“要求變量聲明”選項(xiàng)。該復(fù)選框自動(dòng)在新模塊中自動(dòng)插入以下語(yǔ)句。OptionExplicit第38頁(yè)/共534頁(yè)2.3.1顯式聲明DimvarName[Asvartype][,varName2Asvartype2]PrivatevarName[Asvartype][,varName2Asvartype2]PublicvarName[Asvartype][,varName2Asvartype2]StaticvarName[Asvartype][,varName2Asvartype2]第39頁(yè)/共534頁(yè)2.3.2隱式聲明編號(hào)變量類型顯示字符1整數(shù)(Integer)%2長(zhǎng)整型(Long)&3單精度型(Single)!4雙精度型(Double)#5貨幣型(Currency)@6字符串型(String)$7字節(jié)型(Byte)無(wú)8布爾型(Boolean)無(wú)9日期型(Date)無(wú)10對(duì)象型(Object)無(wú)11變體型(Variant)無(wú)第40頁(yè)/共534頁(yè)2.3.2隱式聲明nNumber%=0 ‘將nNumber尾部添加%表示為整數(shù)sString$=”VisualBasic” ‘將sString尾部添加$表示為整數(shù)vVar=6第41頁(yè)/共534頁(yè)2.3.3定長(zhǎng)字符串VisualBasic中也可以聲明定義定長(zhǎng)字符串,最長(zhǎng)為216個(gè)字符。該字符串大小長(zhǎng)度是固定不變的。如果該變量被賦予短于該長(zhǎng)度的表達(dá)式,變量的剩余長(zhǎng)度將以空格填充。如果長(zhǎng)于該長(zhǎng)度,自動(dòng)截取等于該長(zhǎng)度的字符,其余部分將被截取。DimvarNameasstring*strlength第42頁(yè)/共534頁(yè)2.4常量簡(jiǎn)介常量與變量區(qū)別在于運(yùn)行過(guò)程中常量表示不變的數(shù)值或字符串。常量用以代替繁復(fù)難以記憶或輸入的數(shù)值或字符。變量可以在程序中根據(jù)需要修改數(shù)據(jù),常量在定義之后無(wú)法進(jìn)行修改。常量的使用有助于改進(jìn)代碼的可讀性和可維護(hù)性。第43頁(yè)/共534頁(yè)2.4.1標(biāo)準(zhǔn)常量VisualBasic為應(yīng)用程序開(kāi)發(fā)提供了許多標(biāo)準(zhǔn)常量。例如,顏色定義常量、關(guān)鍵代碼常量等可以在開(kāi)發(fā)過(guò)程直接引用。例如,vbBlack在VisualBasic定義為黑色,vbWhite為白色、vbBlue為藍(lán)色。用戶可以在程序開(kāi)發(fā)中直接使用該常量。Form1.backcolor=vbBlack ‘窗體背景顏色賦予黑色Form1.Forecolor=vbWhite ‘窗體前景色賦予白色第44頁(yè)/共534頁(yè)2.4.1標(biāo)準(zhǔn)常量第45頁(yè)/共534頁(yè)2.4.2自定義常量雖然VisualBasic中為開(kāi)發(fā)人員提供了大量標(biāo)準(zhǔn)常量,根據(jù)應(yīng)用程序開(kāi)發(fā)需要使用自定義常量。自定義常量使用Const語(yǔ)句進(jìn)行定義,賦予常量名稱和數(shù)值。[Public|Private]constvarNameasconsttype=value第46頁(yè)/共534頁(yè)2.5本章實(shí)例本章實(shí)例實(shí)現(xiàn)顯式聲明、隱式聲明變量、聲明靜態(tài)變量、聲明常量?!緦?shí)例2-1】將使用VisualBasic程序創(chuàng)建一個(gè)新工程,添加一個(gè)新窗體,在代碼編輯窗口中輸入代碼要求強(qiáng)制顯式聲明變量,并在代碼中賦予顯式聲明變量、隱式聲明變量和自定義常量?jī)?nèi)容。第47頁(yè)/共534頁(yè)2.6常見(jiàn)問(wèn)題及解答1.既然變體型變量可以包含所有類型數(shù)值,是否可以將變量直接聲明為變體型?2.?dāng)?shù)值型變量包含多種不同類型。聲明何種類型將更高效率在程序中使用數(shù)值型變量?3.字符型變量中的數(shù)字是否可以進(jìn)行數(shù)學(xué)運(yùn)算?第48頁(yè)/共534頁(yè)2.7小結(jié)本章介紹了VisualBasic中數(shù)據(jù)類型的定義、如何顯示或隱式聲明變量和常量、變量和常量的定義及適用范圍。本章重點(diǎn)和難點(diǎn)包括如何定義和使用各種數(shù)據(jù)類型的變量、常量。變量包括多種數(shù)據(jù)類型,VisualBasic中自定義常量數(shù)量龐大不易于記憶和開(kāi)發(fā)使用。讀者需要在開(kāi)發(fā)過(guò)程中結(jié)合實(shí)例聲明變量和常量。下一章將介紹程序設(shè)計(jì)基礎(chǔ)。第49頁(yè)/共534頁(yè)第3章程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)為程序設(shè)計(jì)所必需的基礎(chǔ)知識(shí)。這部分內(nèi)容主要包括賦值語(yǔ)句、數(shù)學(xué)運(yùn)算語(yǔ)句、代碼編寫(xiě)、流程控制等。創(chuàng)建用戶界面形成應(yīng)用程序的外表和框架,還需要為應(yīng)用程序添加代碼。本章內(nèi)容包括:賦值語(yǔ)句數(shù)學(xué)運(yùn)算語(yǔ)句代碼模塊編寫(xiě)事件第50頁(yè)/共534頁(yè)3.1賦值語(yǔ)句賦值,顧名思義是將字符、數(shù)值等賦予變量。在程序開(kāi)發(fā)過(guò)程中,創(chuàng)建一個(gè)變量后,必須通過(guò)設(shè)置一個(gè)等號(hào)賦予變量數(shù)值。[Let]varName=Expression第51頁(yè)/共534頁(yè)3.2數(shù)學(xué)運(yùn)算語(yǔ)句數(shù)學(xué)運(yùn)算運(yùn)算符號(hào)加法+減法-乘法*除法/整除\求模運(yùn)算Mod指數(shù)運(yùn)算^(TxtTax+100)*1.089/69第52頁(yè)/共534頁(yè)3.2.1加法和減法1.加法運(yùn)算Result=Expression1+Expression22.減法運(yùn)算Result=Number1-Number2第53頁(yè)/共534頁(yè)3.2.2乘法和除法1.乘法運(yùn)算Result=Number1*Number22.除法運(yùn)算Result=Number1/Number2Result=Number1\Number2Result=Number1ModNumber2第54頁(yè)/共534頁(yè)3.2.3指數(shù)運(yùn)算VisualBasic中指數(shù)運(yùn)算符是符號(hào)“^”,用來(lái)求一個(gè)數(shù)字的次方。Result=Number^Exponent第55頁(yè)/共534頁(yè)3.2.4比較運(yùn)算符比較運(yùn)算符用來(lái)比較兩個(gè)操作數(shù)的大小。比較運(yùn)算符運(yùn)算結(jié)果是一個(gè)邏輯值True或False。運(yùn)算符比較表達(dá)式=相等X=Y<>不相等X<>Y<小于X<Y>大于X>Y<=小于等于X<=Y>=大于等于X>=Y第56頁(yè)/共534頁(yè)3.2.5邏輯運(yùn)算符邏輯運(yùn)算又被稱為布爾運(yùn)算。邏輯運(yùn)算符要求兩個(gè)操作數(shù)都為邏輯值。邏輯中文說(shuō)明表達(dá)式Not非“取反”運(yùn)算。True取反值為False,F(xiàn)alse取反為True。NotXAnd與當(dāng)左右操作數(shù)都為True時(shí),結(jié)果為True,否則為False。XandYOr或左右操作數(shù)只要一個(gè)為True,結(jié)果為True。只有兩個(gè)操作數(shù)的值都為False時(shí),運(yùn)算結(jié)果為False。XorYXor異或左右操作數(shù)相等都為True或False,結(jié)果為False;否則為True。XXorYEqv等價(jià)左右操作數(shù)相等都為True或False,結(jié)果為True;否則為False。XeqvYImp蘊(yùn)含左操作數(shù)為True,右操作數(shù)為False,結(jié)果為False。其余三種為True。XimpY第57頁(yè)/共534頁(yè)3.2.6運(yùn)算順序算術(shù)比較邏輯指數(shù)運(yùn)算(^)相等(=)Not負(fù)數(shù)(–)不等(<>)And乘法和除法(*、/)小于(<)Or整數(shù)除法(\)大于(>)Xor求模運(yùn)算(Mod)小于或相等(<=)Eqv加法和減法(+、–)大于或相等(>=)Imp字符串連接(&)

第58頁(yè)/共534頁(yè)3.3代碼模塊VisualBasic的程序代碼存儲(chǔ)在代碼模塊中。代碼模塊包括三種類型:窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。以上三種模塊都可以包含作用域不同的聲明段和過(guò)程。本小節(jié)分別介紹窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。第59頁(yè)/共534頁(yè)3.3.1窗體模塊在VisualBasic開(kāi)發(fā)程序過(guò)程中,最簡(jiǎn)單的應(yīng)用程序只包含一個(gè)窗體,應(yīng)用程序的所有代碼都保存在窗體模塊中。窗體模塊(后綴frm)是大多數(shù)VisualBasic應(yīng)用程序的基礎(chǔ)。窗體模塊可以包含處理事件的過(guò)程、通用過(guò)程以及變量、常數(shù)、類型和外部過(guò)程的窗體級(jí)聲明。第60頁(yè)/共534頁(yè)3.3.2標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊(后綴bas)在應(yīng)用程序中保存其他模塊訪問(wèn)的全局過(guò)程、函數(shù)、聲明。當(dāng)開(kāi)發(fā)的應(yīng)用程序相對(duì)龐大復(fù)雜時(shí),在不同窗體中包含相同的可執(zhí)行的公共代碼??稍跇?biāo)準(zhǔn)模塊中編寫(xiě)該公共代碼并允許被其他窗體或模塊調(diào)用。第61頁(yè)/共534頁(yè)3.3.3類模塊VisualBasic中類模塊(后綴cls)是面向?qū)ο缶幊痰幕A(chǔ)。開(kāi)發(fā)時(shí)可以在類模塊中編寫(xiě)代碼建立新對(duì)象。該新對(duì)象可以包含自定義的屬性和方法。實(shí)際上窗體正是這樣一種類模塊,可顯示為內(nèi)置其他控件的窗體。第62頁(yè)/共534頁(yè)3.4事件簡(jiǎn)介事件是一種響應(yīng)指定時(shí)間被特定對(duì)象(窗體或控件等)識(shí)別并執(zhí)行的操作。開(kāi)發(fā)人員可以在事件過(guò)程中編寫(xiě)特定程序代碼,事件一旦發(fā)生就會(huì)被執(zhí)行。每個(gè)對(duì)象都包括一組事件集合。本節(jié)將介紹如何編寫(xiě)和調(diào)用事件過(guò)程。第63頁(yè)/共534頁(yè)3.4.1編寫(xiě)事件過(guò)程事件說(shuō)明Change用戶更改文本信息時(shí)引發(fā)Click用戶單擊鼠標(biāo)時(shí)引發(fā)(一般為鼠標(biāo)左鍵)Dblclick用戶雙擊鼠標(biāo)時(shí)引發(fā)Gotfocus對(duì)象獲得焦點(diǎn)時(shí)引發(fā)Lostfocus對(duì)象失去焦點(diǎn)時(shí)引發(fā)Keypress焦點(diǎn)對(duì)象按鍵并松開(kāi)引發(fā)KeyDown焦點(diǎn)對(duì)象按鍵引發(fā)Keyup焦點(diǎn)對(duì)象松開(kāi)引發(fā)MouseDown鼠標(biāo)在對(duì)象上按下鼠標(biāo)按鈕引發(fā)Mouseup鼠標(biāo)在對(duì)象上松開(kāi)鼠標(biāo)按鈕引發(fā)Mousemove鼠標(biāo)在對(duì)象上移動(dòng)時(shí)引發(fā)第64頁(yè)/共534頁(yè)3.4.2調(diào)用事件過(guò)程應(yīng)用程序開(kāi)發(fā)時(shí)需要編寫(xiě)和調(diào)用許多過(guò)程。事件過(guò)程是由VisualBasic調(diào)用自身的特殊過(guò)程。與普通過(guò)程調(diào)用相同,需要在不同時(shí)段中運(yùn)行相同事件過(guò)程。只要調(diào)用事件過(guò)程名稱正確,就可以在多處運(yùn)行該事件過(guò)程。PrivateSubCommand1_Click() MsgBox"當(dāng)前日期為:"&Date EndSubPrivateSubForm_Load()CallCommand1_ClickEndSub第65頁(yè)/共534頁(yè)3.5編輯代碼本節(jié)介紹如何編寫(xiě)代碼,包括合并多個(gè)代碼行、添加注釋以及VisualBasic命名約定。第66頁(yè)/共534頁(yè)3.5.1單行語(yǔ)句分成多行復(fù)雜應(yīng)用程序代碼編寫(xiě)過(guò)程中會(huì)遇到非常長(zhǎng)的字符串。為了更好的編寫(xiě)代碼,可以使用續(xù)行符(一個(gè)空格和一個(gè)下劃線)將一段長(zhǎng)語(yǔ)句分成多行。使用續(xù)行符使代碼易于閱讀和編寫(xiě)。Data1.recordsource=&_ “Select*fromtitle_company”&_“wheretitleName=’salary’”&_”andcompany=’skyrising’”第67頁(yè)/共534頁(yè)3.5.2多行語(yǔ)句合并一行一般情況下,VisualBasic一行只有一條語(yǔ)句。但是可以將兩條或多條短語(yǔ)句合并到一行,中間需要用冒號(hào)(:)將其分開(kāi)。nRed=38:ngreen=36:nblue=128:nmycolor=nRed+ngreen+nblue

第68頁(yè)/共534頁(yè)3.5.3添加注釋優(yōu)秀的程序員都具有在關(guān)鍵步驟下添加注釋的好習(xí)慣。添加注釋需要在VisualBasic一條語(yǔ)句的最后添加注釋符(')或關(guān)鍵字Rem。注釋符在程序運(yùn)行時(shí)會(huì)通知VisualBasic自動(dòng)忽略注釋符之后的語(yǔ)句。這樣便于日后檢查修改程序?!@是第一條注釋內(nèi)容,以后將會(huì)有大量注釋添加Rem這是用rem添加注釋內(nèi)容Msgbox“添加注釋是一個(gè)良好的習(xí)慣”第69頁(yè)/共534頁(yè)3.5.4命名約定在編寫(xiě)VisualBasic代碼時(shí),分別要給變量、常量、函數(shù)、過(guò)程命名。在聲明變量、常量、函數(shù)、過(guò)程時(shí)必須遵守以下命名規(guī)定:命名必須以字母開(kāi)頭。命名不可以超過(guò)255個(gè)字符。命名不可以包含特殊符號(hào)。命名不可以和默認(rèn)關(guān)鍵字同名。第70頁(yè)/共534頁(yè)3.6本章實(shí)例本節(jié)主要鼠標(biāo)移動(dòng)時(shí)顯示橫坐標(biāo)和縱坐標(biāo)的差值?!緦?shí)例3-1】編寫(xiě)窗體Mousemove事件,顯示鼠標(biāo)橫坐標(biāo)和縱坐標(biāo)的差值。第71頁(yè)/共534頁(yè)3.7常見(jiàn)問(wèn)題及解答1.是否可以使用Name、Dim等與關(guān)鍵字同名賦予變量、函數(shù)等?2.添加注釋是否增加程序大小、影響程序運(yùn)行效率?3.編寫(xiě)程序代碼時(shí),經(jīng)常出現(xiàn)提示“編譯錯(cuò)誤,缺少標(biāo)識(shí)符”?第72頁(yè)/共534頁(yè)3.8小結(jié)本章主要介紹了VisulaBasic中賦值語(yǔ)句、數(shù)學(xué)運(yùn)算語(yǔ)句、代碼模塊、編寫(xiě)事件、編輯代碼、添加注釋的使用方法。本章重點(diǎn)難點(diǎn)是比較運(yùn)算符和邏輯運(yùn)算符的使用。以上兩種運(yùn)算符邏輯復(fù)雜、不易于掌握。讀者需要結(jié)合實(shí)例源碼進(jìn)行分析學(xué)習(xí)。第73頁(yè)/共534頁(yè)第4章流程控制流程控制是VisualBasic應(yīng)用程序開(kāi)發(fā)中對(duì)特定條件進(jìn)行分析、比較、判斷,主要包括判斷語(yǔ)句和循環(huán)語(yǔ)句。判斷語(yǔ)句為根據(jù)不同的判斷結(jié)果進(jìn)行不同的操作。循環(huán)語(yǔ)句可以進(jìn)行多次數(shù)學(xué)運(yùn)算。本章內(nèi)容包括:判斷語(yǔ)句。循環(huán)語(yǔ)句。第74頁(yè)/共534頁(yè)4.1判斷語(yǔ)句判斷語(yǔ)句在復(fù)雜應(yīng)用程序流程控制中具有重要作用。程序中如果不添加判斷語(yǔ)句,程序?qū)牡谝恍写a開(kāi)始運(yùn)行,直至最后一行程序終止,無(wú)法響應(yīng)用戶的操作。判斷語(yǔ)句可根據(jù)所給的條件控制程序流程,只運(yùn)行其中特定程序代碼。判斷語(yǔ)句包括If語(yǔ)句和SelectCase語(yǔ)句。第75頁(yè)/共534頁(yè)4.1.1If語(yǔ)句應(yīng)用程序中可能只需要運(yùn)行某個(gè)符合條件的語(yǔ)句。If語(yǔ)句根據(jù)表達(dá)式的結(jié)果選擇執(zhí)行一段代碼。標(biāo)準(zhǔn)語(yǔ)法有單行語(yǔ)句和多行語(yǔ)句兩種形式。IfconditionThen[statements][ElseElsestatements]IfconditionThen[statements][Else][Elsestatements]EndIf第76頁(yè)/共534頁(yè)4.1.2多重If語(yǔ)句VisualBasic還支持多重If語(yǔ)句,對(duì)多個(gè)條件進(jìn)行判斷執(zhí)行指定代碼。IfconditionThen[statements][ElseIfcondition-nThen[ElseIfstatements][Else][Elsestatements]EndIf第77頁(yè)/共534頁(yè)4.1.3SelectCase語(yǔ)句判斷語(yǔ)句另一個(gè)重要方法是使用SelectCase語(yǔ)句。根據(jù)運(yùn)算表達(dá)式的條件結(jié)果,允許有條件執(zhí)行多個(gè)代碼段中的指定段。對(duì)于多重If語(yǔ)句,使用SelectCase語(yǔ)句相對(duì)更加富有可讀性。SelectCasetestExpression[CaseExpressionlist1[statementblock-1]][CaseExpressionlist2[statementblock-2]]…..[CaseElse][statementblock-n]]EndSelect第78頁(yè)/共534頁(yè)4.2循環(huán)語(yǔ)句流程控制的重要方法之一是循環(huán)語(yǔ)句。循環(huán)語(yǔ)句主要在程序中重復(fù)運(yùn)行特定任務(wù)。VisualBasic開(kāi)發(fā)程序中主要包括計(jì)數(shù)循環(huán)、條件循環(huán)、枚舉循環(huán)。本節(jié)主要講述For循環(huán)(計(jì)數(shù)循環(huán))、Do和While循環(huán)(條件循環(huán))、For-each循環(huán)(枚舉循環(huán))。第79頁(yè)/共534頁(yè)4.2.1For循環(huán)ViusalBasic語(yǔ)言中使用For循環(huán)主要用來(lái)進(jìn)行計(jì)數(shù)。For循環(huán)又可以稱為For-Next循環(huán),主要采用For關(guān)鍵字和Next關(guān)鍵字。ForCounter=StartToEnd[Stepstep][statements][ExitFor][statements]Next[counter]第80頁(yè)/共534頁(yè)4.2.2Do循環(huán)For循環(huán)通過(guò)步長(zhǎng)計(jì)數(shù)來(lái)運(yùn)行程序。在特定條件下運(yùn)行特定代碼,需要用到Do循環(huán)和下節(jié)的While循環(huán)。Do循環(huán)通過(guò)判斷表達(dá)式條件是True還是False來(lái)確定是否結(jié)束循環(huán)。Do[{While|Until}condition][statements][ExitDo][statements]Loop第81頁(yè)/共534頁(yè)4.2.3While循環(huán)在VisualBasic應(yīng)用程序開(kāi)發(fā)中,經(jīng)常可以看到類似While-WEnd這樣的循環(huán)語(yǔ)句。這種循環(huán)是早期版本遺留下來(lái)的,高版本的VisualBasic中依然支持此用法。但是,筆者推薦使用前兩種循環(huán)。Whilecondition[statements]WEnd第82頁(yè)/共534頁(yè)4.2.4枚舉循環(huán)枚舉循環(huán)又被稱為For-each-next循環(huán)。與For-next循環(huán)語(yǔ)句略有不同,它將數(shù)組或?qū)ο蠹现械膶?duì)象重復(fù)執(zhí)行一段代碼,并不是重復(fù)執(zhí)行一定次數(shù)相同代碼。For-each-next循環(huán)語(yǔ)句對(duì)不知數(shù)目的相同對(duì)象進(jìn)行操作時(shí)具有明顯優(yōu)點(diǎn)。ForEachelementIngroup[statements][ExitFor][statements]Next[element]第83頁(yè)/共534頁(yè)4.3本章實(shí)例本章實(shí)例實(shí)現(xiàn)單行If語(yǔ)句、多重If語(yǔ)句判斷工資范圍計(jì)算稅款、SelectCase語(yǔ)句判斷不同職務(wù)人員工資和顯示學(xué)生成績(jī)、For循環(huán)顯示高斯運(yùn)算總和、Do循環(huán)顯示5行#號(hào)、枚舉循環(huán)顯示打印機(jī)設(shè)備名稱。【實(shí)例4-1】演示單行If語(yǔ)句的使用。第84頁(yè)/共534頁(yè)4.4常見(jiàn)問(wèn)題及解答1.是否可以使用多重If語(yǔ)句代替SelectCase語(yǔ)句?2.運(yùn)行包括循環(huán)語(yǔ)句的程序時(shí)系統(tǒng)沒(méi)有任何反映?3.For循環(huán)與Do循環(huán)、While循環(huán)有什么區(qū)別?第85頁(yè)/共534頁(yè)4.5小結(jié)本章主要介紹了判斷語(yǔ)句和循環(huán)語(yǔ)句的定義,主要包括If語(yǔ)句和SelectCase語(yǔ)句、For循環(huán)、Do循環(huán)、While循環(huán)、枚舉循環(huán)的語(yǔ)法知識(shí),以及如何根據(jù)應(yīng)用程序需要使用判斷和循環(huán)語(yǔ)句。其中,循環(huán)語(yǔ)句循環(huán)過(guò)程難于控制,需要結(jié)合實(shí)例多加分析和實(shí)踐。第86頁(yè)/共534頁(yè)第5章過(guò)程和函數(shù)過(guò)程和函數(shù)就是在程序中可以被重復(fù)使用的代碼。當(dāng)應(yīng)用程序比較復(fù)雜時(shí),開(kāi)發(fā)人員可能需要在程序多處使用相同的代碼。在VisualBasic應(yīng)用程序開(kāi)發(fā)中,重要任務(wù)之一就是創(chuàng)建可重復(fù)使用的代碼。本章內(nèi)容包括:過(guò)程函數(shù)第87頁(yè)/共534頁(yè)5.1過(guò)程過(guò)程就是在應(yīng)用程序可以被多次重復(fù)使用的代碼段。使用過(guò)程具有以下優(yōu)點(diǎn):復(fù)雜任務(wù)分解成多個(gè)簡(jiǎn)單代碼段;易于讀寫(xiě),具有較強(qiáng)的可讀性和可維護(hù)性。前面章節(jié)介紹的事件過(guò)程就是VisualBasci定義過(guò)程的一種。本節(jié)介紹的過(guò)程是用戶創(chuàng)建的自定義過(guò)程。第88頁(yè)/共534頁(yè)5.1.1Sub過(guò)程概述Sub過(guò)程是可以被重復(fù)執(zhí)行的無(wú)返回值的代碼段。[Private|Public][Static]SubName[(Arglist)][statements][ExitSub][statements]EndSub第89頁(yè)/共534頁(yè)5.1.2添加Sub過(guò)程添加Sub過(guò)程有第一種方法:第90頁(yè)/共534頁(yè)5.1.2添加Sub過(guò)程添加Sub過(guò)程有第二種方法。Subshowmsg()EndSub第91頁(yè)/共534頁(yè)5.1.3調(diào)用Sub過(guò)程調(diào)用Sub過(guò)程主要使用Call語(yǔ)句或過(guò)程名+參數(shù)形式調(diào)用。CallSubName[Arglist]SubName[Arglist]第92頁(yè)/共534頁(yè)5.1.4使用SubMain1.設(shè)置啟動(dòng)窗體2.無(wú)啟動(dòng)窗體時(shí)啟動(dòng)第93頁(yè)/共534頁(yè)5.1.5確定過(guò)程作用域1.公共過(guò)程2.局部過(guò)程3.靜態(tài)變量過(guò)程第94頁(yè)/共534頁(yè)5.2傳遞參數(shù)VisualBasic提供了非常靈活的傳遞參數(shù)方式,允許使用可選參數(shù)和可變參數(shù),使用傳值引用和傳地址引用方法。[Optional][ByVal|ByRef][ParamArray]varName[()][Astype][=defaultvalue]第95頁(yè)/共534頁(yè)5.2.1可選參數(shù)和可變參數(shù)1.可選參數(shù)2.可變參數(shù)第96頁(yè)/共534頁(yè)5.2.2傳值引用和傳地址引用1.傳值引用2.傳地址引用Subprog(byvalaasinteger)‘(添加代碼)EndSubSubprog(byrefaasinteger)‘(添加代碼)EndSub第97頁(yè)/共534頁(yè)5.3函數(shù)函數(shù)為編輯代碼時(shí)可以被程序調(diào)用帶有返回值的代碼段。本節(jié)將介紹函數(shù)定義和使用方法。第98頁(yè)/共534頁(yè)5.3.1定義函數(shù)Function過(guò)程又被稱為函數(shù)過(guò)程,與VisualBasic內(nèi)置函數(shù)完全相同。函數(shù)與子過(guò)程區(qū)別為,函數(shù)帶有返回值,而子過(guò)程沒(méi)有返回值。[Public|Private|Static]FunctionName[(Arglist)][Astype][statements][Name=Expression] [ExitFunction] [statements] [Name=Expression]EndFunction第99頁(yè)/共534頁(yè)5.3.2確定函數(shù)作用域1.公共函數(shù)2.局部函數(shù)3.靜態(tài)變量函數(shù)第100頁(yè)/共534頁(yè)5.3.3調(diào)用函數(shù)函數(shù)調(diào)用和過(guò)程調(diào)用基本相似,惟一不同之處在于函數(shù)可以有返回值。如果無(wú)返回值,用Call語(yǔ)句調(diào)用函數(shù)。CallfunName[Arglist]Return=funName[Arglist]第101頁(yè)/共534頁(yè)5.3.4傳遞參數(shù)和返回值函數(shù)傳遞參數(shù)的方法與過(guò)程完全相同。不在此贅述。函數(shù)與過(guò)程最重要的區(qū)別是函數(shù)有返回值。過(guò)程的數(shù)據(jù)類型決定其返回值的數(shù)據(jù)類型。可以在Arglist之后使用As關(guān)鍵字來(lái)指定函數(shù)返回值的數(shù)據(jù)類型。在Arglist中,可以使用As子句來(lái)指定任何傳給該過(guò)程的參數(shù)的數(shù)據(jù)類型。不但可以指定為任何標(biāo)準(zhǔn)數(shù)據(jù)類型,還可以在Arglist中指定AsAny來(lái)禁止類型檢查,從而允許將任意數(shù)據(jù)類型傳遞給該過(guò)程。第102頁(yè)/共534頁(yè)5.4本章實(shí)例本章實(shí)例創(chuàng)建過(guò)程、函數(shù)計(jì)算三個(gè)數(shù)平方之和、創(chuàng)建加密字符串。【實(shí)例5-1】創(chuàng)建一個(gè)過(guò)程,計(jì)算三個(gè)數(shù)平方之和。

圖5.4運(yùn)行窗體

第103頁(yè)/共534頁(yè)5.5常見(jiàn)問(wèn)題及解答1.過(guò)程或函數(shù)在窗體和模塊有什么區(qū)別?2.參數(shù)可以設(shè)計(jì)為可選參數(shù)和可變參數(shù),是否可以多設(shè)計(jì)幾個(gè)可選參數(shù)?3.如何使用傳值引用和傳地址引用?第104頁(yè)/共534頁(yè)5.6小結(jié)本章主要介紹了過(guò)程和函數(shù)的定義以及如何根據(jù)應(yīng)用程序的需要調(diào)用過(guò)程和函數(shù)。本章重點(diǎn)難點(diǎn)包括:過(guò)程和函數(shù)如何傳遞參數(shù)、函數(shù)如何返回值。其中,函數(shù)傳遞參數(shù)和返回值結(jié)構(gòu)復(fù)雜難于掌握。第105頁(yè)/共534頁(yè)第6章數(shù)組數(shù)組是具有相同名字、不同下標(biāo)的一組變量。使用數(shù)組可以縮短和簡(jiǎn)化程序,可以利用索引值設(shè)計(jì)循環(huán),高效處理各種程序運(yùn)行需要。數(shù)組包括固定大小的數(shù)組和動(dòng)態(tài)數(shù)組。本章內(nèi)容包括:固定數(shù)組。動(dòng)態(tài)數(shù)組。第106頁(yè)/共534頁(yè)6.1固定數(shù)組固定數(shù)組顧名思義就是固定元素?cái)?shù)量的數(shù)組。固定數(shù)組包括一維數(shù)組和多維數(shù)組。固定數(shù)組中使用一個(gè)下標(biāo)就能確定數(shù)組元素在數(shù)組中的位置稱為一維數(shù)組。具有兩個(gè)或多個(gè)下標(biāo)的變量數(shù)組稱為二維或多維數(shù)組。本節(jié)將介紹固定數(shù)組的定義和使用方法。第107頁(yè)/共534頁(yè)6.1.1聲明數(shù)組數(shù)組和變量使用方法不完全相同。變量可以有隱式聲明。數(shù)組必須顯式聲明后使用。[Public|Dim|private|static]arraryname([Num1to]Num2)as[type]第108頁(yè)/共534頁(yè)6.1.2設(shè)定上下界VisualBasic聲明數(shù)組時(shí),在數(shù)組名之后跟一個(gè)用括號(hào)括起來(lái)的上界。上界不得超過(guò)長(zhǎng)整型Long數(shù)據(jù)類型的范圍(-2,147,483,648到2,147,483,647)。默認(rèn)下標(biāo)下界為0。如果希望下標(biāo)下界從1開(kāi)始,可以通過(guò)OptionBase語(yǔ)句來(lái)聲明。該語(yǔ)句用來(lái)指定數(shù)組下標(biāo)默認(rèn)下界。Optionbase1 ‘?dāng)?shù)組下界從1開(kāi)始DimNumbers(10)AsInteger ‘?dāng)?shù)組包含10個(gè)元素DimSums(20)AsDouble ‘?dāng)?shù)組包含20個(gè)元素第109頁(yè)/共534頁(yè)6.1.3多維數(shù)組多維數(shù)組與一維數(shù)組相對(duì)應(yīng)。多維數(shù)組在現(xiàn)實(shí)生活中具有很重要的意義。如屏幕坐標(biāo)、三維動(dòng)畫(huà)數(shù)據(jù)的設(shè)定值等是典型的多維數(shù)組。聲明多維數(shù)組與一維數(shù)組完全相同。Dimmatrix(9,9)asintegerDimmatrix(9,9,9)asinteger第110頁(yè)/共534頁(yè)6.2動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組可以在程序運(yùn)行時(shí)動(dòng)態(tài)改變數(shù)組大小。VisualBasic應(yīng)用程序開(kāi)發(fā)中需要?jiǎng)討B(tài)數(shù)組來(lái)保存多維數(shù)組數(shù)值。動(dòng)態(tài)數(shù)組具有靈活方便管理數(shù)組的能力。本節(jié)介紹動(dòng)態(tài)數(shù)組定義和使用方法。第111頁(yè)/共534頁(yè)6.2.1創(chuàng)建動(dòng)態(tài)數(shù)組聲明動(dòng)態(tài)數(shù)組和普通數(shù)組基本相同。根據(jù)不同關(guān)鍵字定義不同作用域范圍。為數(shù)組賦予一個(gè)空維數(shù)表,將該數(shù)組聲明為動(dòng)態(tài)數(shù)組。Public|Private|Static|Dimarr()ReDim[Preserve]varname(subscripts)[Astype]第112頁(yè)/共534頁(yè)6.2.2使用動(dòng)態(tài)數(shù)組動(dòng)態(tài)數(shù)組使用ReDim關(guān)鍵字。每次使用ReDim關(guān)鍵字,以前數(shù)組內(nèi)容全部自動(dòng)清空。‘聲明數(shù)組Dimarray_m()‘動(dòng)態(tài)聲明數(shù)組為二維數(shù)組ReDimarray_m(3,3)Fori=1To3Forj=1To3‘計(jì)算表達(dá)式

array_m(i,j)=i*jPrint"動(dòng)態(tài)數(shù)組乘積為:"&array_m(i,j)NextjNexti第113頁(yè)/共534頁(yè)6.3本章實(shí)例本章實(shí)例創(chuàng)建聲明數(shù)組、多維數(shù)組、動(dòng)態(tài)數(shù)組,說(shuō)明如何計(jì)算數(shù)組最大值、二維數(shù)組運(yùn)算表達(dá)式數(shù)值、動(dòng)態(tài)數(shù)組運(yùn)算結(jié)果?!緦?shí)例6-1】計(jì)算數(shù)組最大值。

圖6.3運(yùn)行窗體第114頁(yè)/共534頁(yè)6.4常見(jiàn)問(wèn)題及解答1.?dāng)?shù)組num(9)中共計(jì)9個(gè)數(shù)字是否正確?2.動(dòng)態(tài)數(shù)組可以在程序運(yùn)行時(shí)改變數(shù)組大小,是否可以將數(shù)組全部聲明為動(dòng)態(tài)數(shù)組?3.可以在聲明動(dòng)態(tài)數(shù)組時(shí)保存以前動(dòng)態(tài)數(shù)組內(nèi)容?第115頁(yè)/共534頁(yè)6.5小結(jié)本章主要介紹了固定數(shù)組、動(dòng)態(tài)數(shù)組的創(chuàng)建、使用方法。并結(jié)合實(shí)例演示如何創(chuàng)建固定數(shù)組和動(dòng)態(tài)數(shù)組。本章重點(diǎn)難點(diǎn)包括:如何正確聲明和使用動(dòng)態(tài)數(shù)組。動(dòng)態(tài)數(shù)組在編程開(kāi)發(fā)中使用方法復(fù)雜,需要結(jié)合實(shí)例多分析和實(shí)踐。第116頁(yè)/共534頁(yè)第7章錯(cuò)誤處理現(xiàn)在的Windows應(yīng)用程序都非常龐大和復(fù)雜,不可避免將出現(xiàn)一些錯(cuò)誤。當(dāng)事情出現(xiàn)錯(cuò)誤時(shí)應(yīng)用程序如何響應(yīng)是用戶程序設(shè)計(jì)非常重要的一部分。一個(gè)功能完善的應(yīng)用程序應(yīng)該預(yù)料到錯(cuò)誤可能出現(xiàn)并及時(shí)處理或提示用戶。VisualBasic不僅提供了功能強(qiáng)大的程序設(shè)計(jì)環(huán)境,也提供了一個(gè)界面友好、簡(jiǎn)便實(shí)用的程序調(diào)試工具。本章內(nèi)容包括:錯(cuò)誤概述。錯(cuò)誤捕獲和處理。調(diào)試程序。第117頁(yè)/共534頁(yè)7.1錯(cuò)誤概述錯(cuò)誤在應(yīng)用程序開(kāi)發(fā)和運(yùn)行過(guò)程中表現(xiàn)多樣。錯(cuò)誤通常包括語(yǔ)法錯(cuò)誤、運(yùn)行錯(cuò)誤、邏輯錯(cuò)誤三種。本節(jié)將分別介紹三種錯(cuò)誤不同的表現(xiàn)形式和處理方法。第118頁(yè)/共534頁(yè)7.1.1語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤是初學(xué)編程者最常見(jiàn)的錯(cuò)誤。通常是輸入不正確的代碼,包括錯(cuò)誤地輸入關(guān)鍵字、遺忘了標(biāo)點(diǎn)符號(hào)或引用不正確的數(shù)據(jù)結(jié)構(gòu)。具有語(yǔ)法錯(cuò)誤的程序不能正常運(yùn)行,也不能編譯成可執(zhí)行文件。通常VisualBasic中包含“自動(dòng)語(yǔ)法檢測(cè)”選項(xiàng),可以發(fā)現(xiàn)大部分語(yǔ)法錯(cuò)誤并提示改正。第119頁(yè)/共534頁(yè)7.1.2邏輯錯(cuò)誤如果代碼沒(méi)有語(yǔ)法錯(cuò)誤可以運(yùn)行,但是運(yùn)行結(jié)果與設(shè)計(jì)時(shí)完全不同。這樣的代碼中必然存在邏輯錯(cuò)誤,如語(yǔ)法錯(cuò)誤(陷入死循環(huán))、符號(hào)錯(cuò)誤(加法改為減法)、數(shù)值范圍錯(cuò)誤(設(shè)計(jì)數(shù)值為1至100,運(yùn)行時(shí)為1至99)等。程序邏輯錯(cuò)誤是最不容易發(fā)現(xiàn)的嚴(yán)重錯(cuò)誤。大部分邏輯錯(cuò)誤可以歸結(jié)為數(shù)據(jù)錯(cuò)誤、流程控制錯(cuò)誤。DimnAsInteger ‘聲明變量DimsAsIntegerN=1Forn=1To3 ‘for循環(huán)3次

s=s+n ‘運(yùn)算表達(dá)式Nextn第120頁(yè)/共534頁(yè)7.1.3運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤是在程序運(yùn)行過(guò)程中發(fā)生的。有時(shí)語(yǔ)法沒(méi)有錯(cuò)誤,但VisualBasic中卻無(wú)法運(yùn)行程序。例如,除法運(yùn)算中,除數(shù)為0;讀取文件時(shí),該文件不存在等。當(dāng)出現(xiàn)運(yùn)行錯(cuò)誤時(shí),VisualBasic會(huì)自動(dòng)終止應(yīng)用程序,并彈出錯(cuò)誤信息提示。第121頁(yè)/共534頁(yè)7.2錯(cuò)誤捕獲處理優(yōu)秀的應(yīng)用程序應(yīng)該具備較強(qiáng)的捕獲和處理運(yùn)行錯(cuò)誤的能力。硬件問(wèn)題或用戶錯(cuò)誤操作都將引發(fā)錯(cuò)誤并終止應(yīng)用程序。錯(cuò)誤捕獲功能可以攔截錯(cuò)誤并進(jìn)行處理,進(jìn)而可以避免硬件問(wèn)題或用戶操作錯(cuò)誤。本節(jié)將介紹錯(cuò)誤捕獲和處理方法。第122頁(yè)/共534頁(yè)7.2.1錯(cuò)誤捕獲VisualBasic中使用OnError語(yǔ)句來(lái)進(jìn)行錯(cuò)誤捕獲,當(dāng)錯(cuò)誤發(fā)生,程序自動(dòng)運(yùn)行到處理錯(cuò)誤的相關(guān)代碼,予以解決錯(cuò)誤或提示用戶可能需要的幫助。標(biāo)準(zhǔn)代碼如下:OnErrorGoToline發(fā)生錯(cuò)誤時(shí),跳轉(zhuǎn)到指定處理錯(cuò)誤程序代碼。OnErrorResumeNext發(fā)生錯(cuò)誤時(shí),忽略錯(cuò)誤行,繼續(xù)執(zhí)行下一語(yǔ)句。OnErrorGoTo0發(fā)生錯(cuò)誤時(shí),不使用錯(cuò)誤處理程序代碼。第123頁(yè)/共534頁(yè)7.2.2錯(cuò)誤處理在理想程序中,VisualBasic過(guò)程根本不需要錯(cuò)誤處理代碼。但實(shí)際上硬件問(wèn)題或用戶操作都會(huì)造成運(yùn)行時(shí)錯(cuò)誤。沒(méi)有錯(cuò)誤捕獲和處理的程序中,只能選擇終止程序。但是優(yōu)秀的應(yīng)用程序應(yīng)該按以下方式處理錯(cuò)誤:(1)錯(cuò)誤發(fā)生時(shí),提示用戶出錯(cuò)并退出子過(guò)程,程序有限的功能繼續(xù)運(yùn)行。(2)跳過(guò)錯(cuò)誤語(yǔ)句,繼續(xù)執(zhí)行下一句。(3)繼續(xù)嘗試糾正錯(cuò)誤并重新運(yùn)行該語(yǔ)句。第124頁(yè)/共534頁(yè)7.3調(diào)試程序VisualBasic集成開(kāi)發(fā)環(huán)境可以分為三種模式:設(shè)計(jì)模式、執(zhí)行模式、中斷模式。設(shè)計(jì)模式下可以進(jìn)行程序的界面設(shè)計(jì)和代碼編寫(xiě)。執(zhí)行模式運(yùn)行程序,可以查閱代碼,不允許更改程序。中斷模式下程序處于掛起狀態(tài),可以閱讀和修改代碼并進(jìn)行調(diào)試程序。第125頁(yè)/共534頁(yè)7.3.1單步調(diào)試單步調(diào)試包括三種調(diào)試方法:(1)逐語(yǔ)句:?jiǎn)尾秸{(diào)試當(dāng)前過(guò)程和調(diào)用過(guò)程中代碼??旖萱I為F8。(2)逐過(guò)程:?jiǎn)尾秸{(diào)試當(dāng)前過(guò)程中的代碼,不調(diào)試程序中其他代碼??旖萱I為Shift+F8。(3)跳出:一直運(yùn)行到當(dāng)前過(guò)程的結(jié)束??旖萱I為Ctrl+Shift+F8。第126頁(yè)/共534頁(yè)7.3.2立即窗體VisualBasic在開(kāi)發(fā)中斷點(diǎn)模式還提供了“立即”窗體顯示運(yùn)行結(jié)果?!傲⒓础贝绑w允許中斷模式下輸入代碼立即執(zhí)行和顯示運(yùn)行結(jié)果。要顯示“立即”窗體,要保證在中斷模式下,單擊“視圖”|“立即窗體”命令或按鍵Ctrl+G。第127頁(yè)/共534頁(yè)7.3.3監(jiān)視窗體VisualBasic開(kāi)發(fā)過(guò)程中,需要時(shí)刻觀察運(yùn)行時(shí)程序變量值。當(dāng)程序處于中斷模式下,可以將鼠標(biāo)指向代碼窗體的變量懸停,將自動(dòng)提示該變量值。如果為多個(gè)變量還可以通過(guò)監(jiān)視窗體方法來(lái)觀察變量值。第128頁(yè)/共534頁(yè)7.4本章實(shí)例本章實(shí)例包括捕獲圖片文件不存在錯(cuò)誤、單步調(diào)試程序?!緦?shí)例7-1】程序處理不存在圖片文件錯(cuò)誤。第129頁(yè)/共534頁(yè)7.5常見(jiàn)問(wèn)題及解答1.如何讓VisualBasic自動(dòng)檢測(cè)語(yǔ)法錯(cuò)誤?2.如何在程序中避免死循環(huán)?3.既然OnErrorResumeNext語(yǔ)句可以忽略錯(cuò)誤行,第130頁(yè)/共534頁(yè)7.6小結(jié)本章主要介紹了錯(cuò)誤的類型、捕獲和處理錯(cuò)誤以及如何調(diào)試程序。本章重點(diǎn)難點(diǎn)包括:錯(cuò)誤捕獲處理。程序運(yùn)行時(shí)會(huì)產(chǎn)生不同類型異常錯(cuò)誤,需要讀者結(jié)合不同具體情況具體分析和解決。下一章將介紹窗體的特性和創(chuàng)建方法。第131頁(yè)/共534頁(yè)第8章窗體窗體是VisualBasic開(kāi)發(fā)應(yīng)用程序中最重要控件之一。用戶通過(guò)窗體及其所見(jiàn)控件與應(yīng)用程序進(jìn)行交互操作。窗體包括單文檔窗體(SDI窗體)和多文檔窗體(MDI窗體)。本章內(nèi)容包括:?jiǎn)挝臋n窗體。多文檔窗體。第132頁(yè)/共534頁(yè)8.1SDI窗體窗體是應(yīng)用程序界面的其他控件的最主要容器。窗體作為最直接交互界面,包含很多屬性、方法、事件。本節(jié)將介紹單文檔窗體(SDI窗體)的設(shè)計(jì)和使用。第133頁(yè)/共534頁(yè)8.1.1SDI窗體簡(jiǎn)介啟動(dòng)VisualBasic應(yīng)用程序后,會(huì)顯示一個(gè)默認(rèn)的VisualBasic工程。一般包括一個(gè)標(biāo)準(zhǔn)窗體,其界面組成如圖8.1所示。包括標(biāo)題欄、標(biāo)題、最小化按鈕、最大化按鈕、關(guān)閉按鈕等。第134頁(yè)/共534頁(yè)8.1.2公共屬性VisualBasic中所有對(duì)象屬性都不盡相同。但是部分屬性是許多對(duì)象共有。1.Caption屬性2.Font屬性3.Backcolor和Forecolor屬性4.Icon屬性5.Windowstate屬性6.Borderstyle屬性O(shè)bject.attribute=value第135頁(yè)/共534頁(yè)8.1.3方法方法實(shí)際是內(nèi)置于對(duì)象的程序函數(shù)。1.Show方法2.Hide方法3.Setfocus方法4.Refresh方法Object.action第136頁(yè)/共534頁(yè)8.1.4事件1.Load和Unload事件2.Click和Dblclick3.Activate和DeactivateLoadfrmappUnloadfrmapp第137頁(yè)/共534頁(yè)8.1.5設(shè)置啟動(dòng)窗體當(dāng)程序?yàn)槲┮淮绑w時(shí),程序啟動(dòng)并自動(dòng)執(zhí)行。該窗體稱為“啟動(dòng)窗體”或“啟動(dòng)對(duì)象”。當(dāng)程序運(yùn)行時(shí),VisualBasic會(huì)將啟動(dòng)窗體加載到內(nèi)存并顯示直至程序結(jié)束。如果程序包括多個(gè)窗體,必須將其中一個(gè)設(shè)為“啟動(dòng)窗體”或在Main過(guò)程中設(shè)定。第138頁(yè)/共534頁(yè)8.1.6SDI窗體實(shí)例本節(jié)創(chuàng)建SDI窗體示例“關(guān)于窗體”和窗體屬性?!瓣P(guān)于窗體”是Windows應(yīng)用程序中主要窗體,用以聲明程序名稱、版本、公司名稱。第139頁(yè)/共534頁(yè)8.2MDI窗體Windows應(yīng)用程序中Office系列文件為最典型多文檔窗體(MDI窗體)。多文檔窗體允許在單個(gè)主窗體中包含多個(gè)子窗體的應(yīng)用程序。本節(jié)介紹如何創(chuàng)建和使用MDI窗體。第140頁(yè)/共534頁(yè)8.2.1MDI窗體簡(jiǎn)介多文檔窗體(MDI窗體)中父窗體是包含子窗體的主要窗體。父窗體位于最外層,包含其內(nèi)子窗體。其操作如最大化、最小化、關(guān)閉將同步操作子窗體。第141頁(yè)/共534頁(yè)8.2.2建立父窗體MDI窗體屬性中有兩個(gè)特別的屬性Autoshowchildren和Scrollbars屬性。Autoshowchildren屬性決定了子窗體在加載時(shí)是否自動(dòng)顯示。如果該屬性為默認(rèn)值,子窗體自動(dòng)顯示出來(lái)。Scrollbars屬性決定了父窗體在運(yùn)行時(shí)是否需要滾動(dòng)條。當(dāng)該屬性設(shè)置為默認(rèn)值True時(shí),如果子窗體延伸到父窗體外部,滾動(dòng)條自動(dòng)顯示在父窗體上;設(shè)為False時(shí)不顯示滾動(dòng)條。第142頁(yè)/共534頁(yè)8.2.3建立子窗體子窗體建立相對(duì)簡(jiǎn)單一些。一個(gè)子窗體只需要將MDIchild屬性設(shè)置為True即成為標(biāo)準(zhǔn)窗體。第143頁(yè)/共534頁(yè)8.2.4MDI窗體實(shí)例本節(jié)創(chuàng)建包含一個(gè)TextBox控件和CommandButton控件的MDI窗體。第144頁(yè)/共534頁(yè)8.3本章實(shí)例【實(shí)例8-1】使用模板創(chuàng)建一個(gè)通用“登錄對(duì)話框窗體”。

圖8.17運(yùn)行窗體

第145頁(yè)/共534頁(yè)8.4常見(jiàn)問(wèn)題及解答1.如何在運(yùn)行時(shí)在窗體標(biāo)題欄上顯示程序名稱?2.如何更改窗體背景顏色?3.BorderStyle屬性中的vbSizable和vbFixedSingle有什么區(qū)別?第146頁(yè)/共534頁(yè)8.5小結(jié)本章主要介紹了SDI窗體的創(chuàng)建和使用方法、MDI窗體的創(chuàng)建和使用方法。本章重點(diǎn)難點(diǎn)包括:SDI窗體主要屬性、如何設(shè)定啟動(dòng)窗體。窗體屬性非常多,需要熟練掌握各種不同選項(xiàng)。啟動(dòng)窗體決定程序運(yùn)行步驟。第147頁(yè)/共534頁(yè)第9章菜單和工具欄菜單和工具欄是應(yīng)用程序最重要的組成部分之一。在Windows環(huán)境下,幾乎所有應(yīng)用程序都是通過(guò)菜單和工具欄實(shí)現(xiàn)操作,為用戶提供運(yùn)行命令的快捷方式。本章包括:菜單欄彈出式菜單工具欄第148頁(yè)/共534頁(yè)9.1菜單欄菜單是用戶界面中的重要組成部分。在程序中加入菜單可以便于用戶使用。用戶對(duì)應(yīng)用文檔的許多操作命令都可以從菜單開(kāi)始。第149頁(yè)/共534頁(yè)9.1.1創(chuàng)建菜單1.菜單模板向?qū)У?50頁(yè)/共534頁(yè)9.1.1創(chuàng)建菜單2.菜單編輯器第151頁(yè)/共534頁(yè)9.1.2修改菜單在應(yīng)用程序開(kāi)發(fā)中,開(kāi)發(fā)人員可能需要定制或者修改編輯好的菜單。用“菜單編輯器”可以輕而易舉完成修改任務(wù)。1.分隔菜單項(xiàng)第152頁(yè)/共534頁(yè)9.1.2修改菜單2.設(shè)置訪問(wèn)鍵和快捷鍵菜單項(xiàng)快捷鍵說(shuō)明文件|新建Ctrl+N新建一個(gè)文件文件|打開(kāi)Ctrl+O打開(kāi)對(duì)話框,用戶打開(kāi)一個(gè)文件文件|保存Ctrl+S保存一個(gè)文件文件|打印Ctrl+P打印文件編輯|復(fù)制Ctrl+C復(fù)制編輯|粘貼Ctrl+V粘貼編輯|剪切Ctrl+X剪切第153頁(yè)/共534頁(yè)9.1.3多級(jí)菜單技巧:VisualBasic允許菜單層級(jí)達(dá)到6級(jí),但在實(shí)際應(yīng)用中避免太多層級(jí)出現(xiàn),應(yīng)限制在2-3級(jí)。第154頁(yè)/共534頁(yè)9.1.4編寫(xiě)代碼1.編寫(xiě)菜單執(zhí)行代碼2.代碼編寫(xiě)菜單屬性第155頁(yè)/共534頁(yè)9.1.5菜單欄實(shí)例1.標(biāo)準(zhǔn)菜單2.多級(jí)菜單第156頁(yè)/共534頁(yè)9.2彈出式菜單彈出式菜單是獨(dú)立于菜單欄顯示在窗體上的浮動(dòng)菜單。在窗體上顯示的項(xiàng)目取決于鼠標(biāo)右鍵指針?biāo)幬恢谩MǔS糜趯?duì)窗體中特定區(qū)域操作或選項(xiàng)進(jìn)行操作,又被稱為上下文菜單,具有使用方便、靈活性較強(qiáng)的特點(diǎn)。第157頁(yè)/共534頁(yè)9.2.1創(chuàng)建彈出式菜單創(chuàng)建彈出式菜單與創(chuàng)建標(biāo)準(zhǔn)菜單方法相同,采用菜單模板或“菜單編輯器”均可以創(chuàng)建彈出式菜單。注意彈出式菜單應(yīng)隱藏起來(lái),避免顯示在菜單欄上。注意:隱藏菜單既可以為彈出式菜單,也可以稱為標(biāo)準(zhǔn)菜單欄的一部分。第158頁(yè)/共534頁(yè)9.2.2使用彈出式菜單彈出式菜單建立后,需要在特定條件下使其顯示在窗體上。該方法可以應(yīng)用于窗體任何位置,但是多數(shù)情況下響應(yīng)鼠標(biāo)單擊右鍵。Object.popupmenumenuName,Flags,X,Y,Boldcommand功能定位常量數(shù)值說(shuō)明指定菜單位置VbPopupMenuLeftAlign0默認(rèn)。X坐標(biāo)定義該彈出式菜單的左邊界VbPopupMenuCenterAlign4指定X坐標(biāo)為中心VbPopupMenuRightAlign8X坐標(biāo)定義該彈出式菜單的右邊界定義菜單行為VbPopupMenuLeftButton0單擊左鍵顯示彈出式菜單VbPopupMenuRightButton8單擊右鍵顯示彈出式菜單第159頁(yè)/共534頁(yè)9.2.3彈出式菜單實(shí)例【示例9-13】創(chuàng)建彈出式菜單。第160頁(yè)/共534頁(yè)9.3工具欄工具欄(Toolbox)通常包含對(duì)應(yīng)應(yīng)用程序菜單命令的按鈕,進(jìn)一步便捷應(yīng)用程序命令的使用。工具欄采用圖標(biāo)按鈕形式來(lái)顯示相應(yīng)的功能。本小節(jié)將介紹如何創(chuàng)建工具欄以及編寫(xiě)程序響應(yīng)工具欄事件。第161頁(yè)/共534頁(yè)9.3.1工具欄簡(jiǎn)介工具欄通常包含一些帶有圖標(biāo)的按鈕,通常與菜單命令相對(duì)應(yīng),提供了快速訪問(wèn)應(yīng)用程序常用功能的簡(jiǎn)便方法。第162頁(yè)/共534頁(yè)9.3.2創(chuàng)建工具欄創(chuàng)建工具欄需要多個(gè)控件:工具欄控件(Toolbox控件)和ImageList控件。ImageList控件包括其他控件需要使用的圖片集(詳見(jiàn)9.3.3小節(jié)添加圖標(biāo))。第163頁(yè)/共534頁(yè)9.3.3添加圖標(biāo)工具欄控件添加到窗體后,需要將要顯示在工具欄上的圖像添加到“圖像列表”ImageList控件中。第164頁(yè)/共534頁(yè)9.3.4添加按鈕工具欄控件中添加按鈕要在“工具欄”|“按鈕”選項(xiàng)卡中設(shè)置,包括“插入按鈕”、“刪除按鈕”兩個(gè)按鈕和“標(biāo)題”、“關(guān)鍵字”、“樣式”、“圖像”等幾個(gè)屬性。第165頁(yè)/共534頁(yè)9.3.5編寫(xiě)代碼通過(guò)以上小節(jié)所述步驟,已經(jīng)創(chuàng)建一個(gè)完整“工具欄”框架。必須為其添加代碼執(zhí)行功能。通過(guò)“工具欄”自身ButtonClick事件可以為其編寫(xiě)代碼。通過(guò)“關(guān)鍵字”屬性來(lái)判斷按鈕是否被單擊。(1)雙擊窗體上的“工具欄”控件,彈出代碼編輯窗口。(2)選擇對(duì)象為“toolbar1”,過(guò)程為“buttonClick”。輸入需要運(yùn)行代碼。(3)關(guān)閉代碼編輯窗口。至此編寫(xiě)代碼結(jié)束。第166頁(yè)/共534頁(yè)9.3.6自定義工具欄工具欄控件允許用戶按照自己的喜好定制工具欄。用戶定制工具欄必須設(shè)置Allowcustomize屬性為True,用戶可以雙擊工具欄訪問(wèn)自定義工具欄對(duì)話框。第167頁(yè)/共534頁(yè)9.3.7工具欄實(shí)例【示例9-17】綜合以上所述方法創(chuàng)建一個(gè)窗體實(shí)例,包括一個(gè)標(biāo)準(zhǔn)菜單和標(biāo)準(zhǔn)工具欄。第168頁(yè)/共534頁(yè)9.4本章實(shí)例本章實(shí)例包括創(chuàng)建標(biāo)準(zhǔn)菜單、彈出式菜單、工具欄三項(xiàng)內(nèi)容,并編寫(xiě)運(yùn)行代碼控制菜單和工具欄顯示?!緦?shí)例9-1】使用“菜單編輯器”創(chuàng)建一個(gè)標(biāo)準(zhǔn)菜單、工具欄、彈出式菜單。

圖9.22運(yùn)行窗體第169頁(yè)/共534頁(yè)9.5常見(jiàn)問(wèn)題及解答1.設(shè)計(jì)菜單有沒(méi)有簡(jiǎn)單快捷的方法?2.可以自由設(shè)置自定義快捷鍵?3.VisualBasic中是否包含工具欄中常用圖標(biāo)?第170頁(yè)/共534頁(yè)9.6小結(jié)本章介紹了菜單欄、彈出式菜單、工具欄的創(chuàng)建方法,以及如何編程實(shí)現(xiàn)運(yùn)行代碼功能。本章重點(diǎn)難點(diǎn)包括:如何為菜單、工具欄編寫(xiě)代碼。VisualBasic程序中菜單和工具欄是實(shí)現(xiàn)程序功能的重要組成部分,為菜單和工具欄編寫(xiě)代碼需要結(jié)合實(shí)例多分析實(shí)踐。第171頁(yè)/共534頁(yè)第10章信息對(duì)話框信息對(duì)話框用來(lái)顯示或者接受信息的窗體。常見(jiàn)的信息對(duì)話框包括顯示信息和接受信息窗體。信息對(duì)話框一般模式化顯示,用戶必須選擇或輸入信息方可繼續(xù)運(yùn)行程序。本章內(nèi)容主要包括:顯示信息對(duì)話框輸入信息對(duì)話框內(nèi)置信息對(duì)話框自定義對(duì)話框第172頁(yè)/共534頁(yè)10.1信息對(duì)話框簡(jiǎn)介VisualBasic開(kāi)發(fā)應(yīng)用程序中重要組成部分是為用戶顯示信息和接受信息。信息對(duì)話框?qū)⑻峁╋@示信息窗體和接受信息窗體。信息對(duì)話框是VisualBasic中內(nèi)置標(biāo)準(zhǔn)對(duì)話框,使用方法與函數(shù)和過(guò)程類似。Msgbox“一個(gè)顯示信息對(duì)話框”第173頁(yè)/共534頁(yè)10.2顯示信息顯示信息主要使用Msgbox函數(shù)。本節(jié)介紹Msgbox函數(shù)的用法。第174頁(yè)/共534頁(yè)10.2.1使用Msgbox函數(shù)Msgbox函數(shù)在對(duì)話框中顯示消息,等待用戶單擊按鈕,并返回一個(gè)整數(shù)值Integer告訴程序用戶所選擇按鈕。Msgbox(Prompt[,Buttons][,Title][,Helpfile,ConText])第175頁(yè)/共534頁(yè)10.2.2從Msgbox函數(shù)返回值Msgbox函數(shù)最重要作用是接受用戶選擇結(jié)果,將返回值賦予程序繼續(xù)運(yùn)行。帶有返回值的Msgbox函數(shù)與無(wú)返回值相比,參數(shù)必須用括號(hào)括起來(lái)。常數(shù)值描述vbOK1OK確認(rèn)信息vbCancel2Cancel取消vbAbort3Abort終止vbRetry4Retry重試vbIgnore5Ignore忽略vbYes6Yes是vbNo7No否第176頁(yè)/共534頁(yè)10.2.3Msgbox函數(shù)實(shí)例Msgbox函數(shù)在VisualBasic應(yīng)用程序中是非常重要的信息函數(shù)。【示例10-4】窗體只包含一個(gè)CommandButton控件,設(shè)置其Caption屬性為

溫馨提示

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