版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5.1 知識(shí)要點(diǎn) 本章以Visual Basic 6.0(以下簡(jiǎn)程VB 6.0)中文版為背景,講解計(jì)算機(jī)程序設(shè)計(jì)的一些基本特點(diǎn)及風(fēng)格。 5.1.1 VB的集成開(kāi)發(fā)環(huán)境 VB 6.0的集成開(kāi)發(fā)環(huán)境由若干窗口組成,包括VB 6.0的主窗口、工具箱窗口、窗體窗口、工程資源管理器窗口、屬性窗口、窗體布局窗口、代碼窗口、數(shù)據(jù)視圖窗口、調(diào)色板窗口等,如圖5.1所示。第5章 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(VB) 工具箱窗口窗體窗口主窗口窗體布局窗口屬性窗口工程資源管理器窗口立即窗口代碼窗口圖5.1 VB 6.0應(yīng)用程序集成開(kāi)發(fā)環(huán)境 1窗口 VB 6.0開(kāi)發(fā)界面的主窗口由標(biāo)題欄、菜單欄、工具欄組成。1)標(biāo)題欄 標(biāo)題欄中
2、的標(biāo)題為“工程1-Microsoft Visual Basic設(shè)計(jì)”,其中“工程1”是當(dāng)前應(yīng)用程序的名稱(chēng),“設(shè)計(jì)”說(shuō)明此時(shí)VB 6.0處于應(yīng)用程序的設(shè)計(jì)模式。2)菜單欄 VB 6.0的菜單欄包括13個(gè)菜單標(biāo)題,每個(gè)菜單標(biāo)題都有一個(gè)下拉菜單,這些下拉菜單包括了程序開(kāi)發(fā)過(guò)程中所需要的命令。3)工具欄 工具欄由多個(gè)圖標(biāo)按鈕組成,在開(kāi)發(fā)環(huán)境下提供對(duì)常用命令的快速訪問(wèn)?!皹?biāo)準(zhǔn)”工具欄各按鈕的意義說(shuō)明如圖5.2所示。除了“標(biāo)準(zhǔn)”工具欄外,VB 6.0還提供了編輯、窗體編輯器、調(diào)試等專(zhuān)用工具欄。要顯示或隱藏工具欄,可以選擇“視圖”菜單的“工具欄”命令或用鼠標(biāo)在標(biāo)準(zhǔn)工具欄處單擊右鍵進(jìn)行工具欄的選取。 添加工程
3、添加窗體菜單編輯器打開(kāi)工程保存工程剪切復(fù)制粘貼查找撤銷(xiāo)重復(fù)重復(fù)啟動(dòng)運(yùn)行中斷結(jié)束屬性窗口窗體布局窗口對(duì)象瀏覽器工具箱窗口數(shù)據(jù)庫(kù)瀏覽窗口控件管理器工程資源管理器圖5.2 標(biāo)準(zhǔn)工具欄2窗體窗口 窗體是建立VB應(yīng)用程序的主要部分,它是應(yīng)用程序界面的窗口和容器,用戶(hù)通過(guò)與窗體上的控制部件交互得到結(jié)果。 啟動(dòng)VB 6.0時(shí)自動(dòng)創(chuàng)建一個(gè)空窗體,設(shè)計(jì)過(guò)程中可以再添加新的窗體。每個(gè)窗體有一個(gè)惟一的名字,建立窗體時(shí)默認(rèn)的名字是Form1、Form2等。窗體的頂端是標(biāo)題欄,標(biāo)題可根據(jù)需要修改,窗體的大小也可根據(jù)需要設(shè)置和調(diào)整。在設(shè)計(jì)狀態(tài)下窗體是可見(jiàn)的,運(yùn)行期間可通過(guò)屬性控制其可見(jiàn)性。 整個(gè)窗體上是用點(diǎn)組成的柵格,其
4、作用是定位放入窗體中的控件與柵格對(duì)齊。柵格點(diǎn)的間距可以通過(guò)執(zhí)行“工具”“選項(xiàng)”命令,在“通用”選項(xiàng)卡的窗體設(shè)置柵格中輸入“寬度”和“高度”來(lái)改變。 3工具箱窗口 啟動(dòng)VB后,工具箱由21個(gè)被繪制成按鈕形式的圖標(biāo)構(gòu)成。除指針用于移動(dòng)窗體和控件,調(diào)整它們的大小外,其他20個(gè)控件稱(chēng)為“標(biāo)準(zhǔn)控件”。利用工具箱提供的這一組工具即可在窗體上設(shè)計(jì)各種控件。 除“標(biāo)準(zhǔn)控件”外,也可以把其他控件添加到工具箱中,供開(kāi)發(fā)應(yīng)用程序使用,或從工具箱中刪除。具體操作步驟為:執(zhí)行“工程”“部件”菜單命令,打開(kāi)“部件”對(duì)話框,選擇“控件”選項(xiàng)卡,從列表中選中要添加或刪除的控件名稱(chēng)前面的選擇框即可。4屬性窗口 屬性用來(lái)描述對(duì)象
5、的性質(zhì),每個(gè)對(duì)象有若干屬性,通過(guò)設(shè)置屬性值來(lái)控制對(duì)象的外觀和行為。屬性窗口中列出的是選定的窗體或控件的全部屬性及其設(shè)置值,有“按字母序”和“按分類(lèi)序”兩種排列方式。 屬性窗口最頂端是標(biāo)題欄,標(biāo)題“屬性-Form1”中Form1表示當(dāng)前列出的屬性是關(guān)于Form1窗體或其中某個(gè)對(duì)象的。 標(biāo)題欄下面的一欄是一個(gè)對(duì)象框,用于顯示可以設(shè)置屬性的對(duì)象名稱(chēng)。 對(duì)象框下面的窗口是屬性列表,左側(cè)列出所選對(duì)象的全部屬性,右側(cè)編輯和觀察屬性值。創(chuàng)建一個(gè)對(duì)象后,其每個(gè)屬性均有一個(gè)默認(rèn)值,在設(shè)計(jì)階段可通過(guò)屬性窗口直接修改。不同對(duì)象所列出的屬性也不相同。 5工程資源管理器窗口 工程資源管理器窗口用于保存一個(gè)應(yīng)用程序的所有
6、屬性及組成這個(gè)應(yīng)用程序的所有文件,其后綴為.vbp,工程文件名顯示在標(biāo)題框中。在工程資源管理器下面的列表窗口中,以層次列表形式列出組成這個(gè)工程的所有文件,主要包括以下三類(lèi)文件: 窗體文件(.frm文件):該文件存儲(chǔ)窗體上使用的所有控件對(duì)象、對(duì)象的屬性、對(duì)象相應(yīng)的事件過(guò)程及程序代碼,一個(gè)應(yīng)用程序至少包含一個(gè)窗體文件。 標(biāo)準(zhǔn)模塊文件(.bas文件):所有模塊級(jí)變量和用戶(hù)自定義的通用過(guò)程。 類(lèi)模塊文件(.cls文件):用于建立用戶(hù)自己的對(duì)象。類(lèi)模塊包含用戶(hù)對(duì)象的屬性及方法,但不包含事件代碼。 6代碼窗口 代碼窗口是應(yīng)用程序的代碼編寫(xiě)器。應(yīng)用程序的每一個(gè)窗體或代碼模塊都有一個(gè)單獨(dú)的代碼窗口。代碼窗口的
7、組成包括以下幾部分。 “對(duì)象列表”框:顯示所選對(duì)象的名稱(chēng)。其中“通用”表示與特定對(duì)象無(wú)關(guān)的通用代碼,一般在此聲明模塊級(jí)變量或編寫(xiě)自定義過(guò)程。 “過(guò)程列表”框:顯示當(dāng)前過(guò)程名。其中“聲明”表示聲明模塊級(jí)變量。當(dāng)在“對(duì)象列表框”中選擇一個(gè)對(duì)象,在“過(guò)程列表框”選擇一個(gè)事件過(guò)程后,即可構(gòu)成所選對(duì)象的事件過(guò)程模板,用戶(hù)可在該模板內(nèi)直接輸入代碼。 “代碼”框:顯示或編輯代碼。 “過(guò)程查看”按鈕:使代碼框中只顯示所選的一個(gè)過(guò)程。 7其他窗口 在VB 6.0的開(kāi)發(fā)界面中,除以上主要窗口外,還有以下窗口。 窗體布局窗口:窗體布局窗口允許用戶(hù)使用一個(gè)表示屏幕的小圖像來(lái)布置應(yīng)用程序中窗體在屏幕上的位置。 對(duì)象瀏覽
8、器窗口:執(zhí)行“視圖”“對(duì)象瀏覽器”菜單命令,或單擊“標(biāo)準(zhǔn)”工具欄上的“對(duì)象瀏覽器”按鈕打開(kāi)對(duì)象瀏覽器窗口。該窗口列出工程中有效的對(duì)象,并提供在代碼中漫游的快速方法。可使用對(duì)象瀏覽器瀏覽VB中的對(duì)象和其他應(yīng)用程序,查看那些對(duì)象的方法和屬性,以及將代碼過(guò)程粘貼到自己的應(yīng)用程序中。 數(shù)據(jù)視圖窗口:執(zhí)行“視圖”“數(shù)據(jù)視圖窗口”菜單命令,或單擊“標(biāo)準(zhǔn)”工具欄上的“數(shù)據(jù)視圖窗口”按鈕,可打開(kāi)數(shù)據(jù)視圖窗口。數(shù)據(jù)視圖窗口用于管理數(shù)據(jù)庫(kù)應(yīng)用程序與數(shù)據(jù)庫(kù)的鏈接。 5.1.2 VB程序設(shè)計(jì)語(yǔ)言1VB的編碼原則VB 6.0代碼主要書(shū)寫(xiě)規(guī)則如下: 代碼不區(qū)分大小寫(xiě)。 在同一行上可以書(shū)寫(xiě)多條語(yǔ)句,各語(yǔ)句間用“:”分開(kāi)。一
9、行最多可書(shū)寫(xiě)255個(gè)字符。 一條語(yǔ)句可以寫(xiě)成若干行,在行末加續(xù)行符(空格或下畫(huà)線)。 不能使用VB的關(guān)鍵字,如Private、Sub、End、If等。 以Rem或撇號(hào)“”開(kāi)頭的語(yǔ)句為注釋語(yǔ)句,注釋語(yǔ)句的內(nèi)容可以是任意的一串字符,但同一行內(nèi),續(xù)行符之后不能加注釋。 各種符號(hào)必須在西文狀態(tài)下輸入。2VB中的標(biāo)識(shí)符 標(biāo)識(shí)符是一個(gè)字符序列,用來(lái)標(biāo)記變量名、函數(shù)名和類(lèi)型名等。VB要求標(biāo)識(shí)符必須符合以下語(yǔ)法規(guī)定: 組成標(biāo)識(shí)符的字符有:AZ、az、09和_。 標(biāo)識(shí)符必須以字母或下畫(huà)線開(kāi)始,后跟字母、數(shù)字或下畫(huà)線組成的字符串。 標(biāo)識(shí)符不能分行書(shū)寫(xiě)。 3VB的數(shù)據(jù)類(lèi)型 數(shù)據(jù)類(lèi)型決定數(shù)據(jù)的存儲(chǔ)方式,包括數(shù)據(jù)的大小
10、、有效位、是否有小數(shù)點(diǎn)等。 基本數(shù)據(jù)類(lèi)型是系統(tǒng)定義的數(shù)據(jù)類(lèi)型,VB 6.0中定義的基本數(shù)據(jù)類(lèi)型有數(shù)值型、字符型、日期/時(shí)間型、邏輯型、對(duì)象型和變體型等。1)數(shù)值型數(shù)據(jù)類(lèi)型 數(shù)值型數(shù)據(jù)類(lèi)型包括Integer、Long、Single、Double、Currency和Byte型。 如果變量存儲(chǔ)的是整數(shù)而不是小數(shù),則可聲明它為Integer或Long型。如果變量包含小數(shù),則應(yīng)聲明為Single、Double或Currency型。如果變量包含二進(jìn)制數(shù)據(jù),則可聲明為Byte型。 2)字符串?dāng)?shù)據(jù)類(lèi)型 用引號(hào)括起來(lái)的一串字符即為字符串常量。字符串有定長(zhǎng)字符串和可變長(zhǎng)字符串。數(shù)值字符串和數(shù)值型變量可以互相賦值。
11、例如:Dim x As Single , y As String x=123.456: y=x y 的值為123.456 x=Int(y) x 的值為123 3)布爾型(Boolean) Boolean數(shù)據(jù)類(lèi)型用于邏輯判斷,只有True和False兩個(gè)值。邏輯型數(shù)據(jù)可轉(zhuǎn)換成整型數(shù)據(jù),True轉(zhuǎn)換為1,F(xiàn)alse轉(zhuǎn)換為0。其他類(lèi)型數(shù)據(jù)可轉(zhuǎn)換為邏輯型數(shù)據(jù),非0值轉(zhuǎn)換為T(mén)rue,0轉(zhuǎn)換為False。4)日期/時(shí)間型(Date) 日期型數(shù)據(jù)用8字節(jié)的浮點(diǎn)數(shù)來(lái)存儲(chǔ),整數(shù)部分表示距1899年12月30日的天數(shù),小數(shù)部分表示距午夜的時(shí)間(如中午為0.5),負(fù)數(shù)表示1899年12月30日以前的日期。使用時(shí)可將
12、按日期/時(shí)間格式書(shū)寫(xiě)的字符串用“#”號(hào)括起來(lái)即可。例如,“# 7/1/97 8:30 am #”為合法的日期/時(shí)間值。 可對(duì)日期型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。加減整數(shù)為加減天數(shù),加減小數(shù)為加減時(shí)間。5)對(duì)象型(Object) Object變量用4個(gè)字節(jié)來(lái)存儲(chǔ),該地址可引用應(yīng)用程序中的對(duì)象。對(duì)Object型變量,可用Set語(yǔ)句為其賦一個(gè)應(yīng)用程序承認(rèn)的實(shí)際對(duì)象。對(duì)象數(shù)據(jù)類(lèi)型包括兩種,一般對(duì)象數(shù)據(jù)類(lèi)型和特殊對(duì)象數(shù)據(jù)類(lèi)型。 6)變體型(Variant) 變體型數(shù)據(jù)是一種可以改變數(shù)據(jù)類(lèi)型的數(shù)據(jù),對(duì)于未聲明或聲明時(shí)未指定類(lèi)型的變量,默認(rèn)為變體型。變體型變量可存儲(chǔ)任何類(lèi)型的數(shù)據(jù),包括數(shù)值型、對(duì)象型、字符型等,可用函數(shù)
13、VarType來(lái)測(cè)試其數(shù)據(jù)類(lèi)型。 不論哪種類(lèi)型的數(shù)據(jù)均可向變體型變量賦值而不必進(jìn)行任何轉(zhuǎn)換,VB自動(dòng)完成任何必要的轉(zhuǎn)換。例如: Dim x 不指定數(shù)據(jù)類(lèi)型為變體型x =123 : x = x-23 x的值為100 x = ABC & x x 的值為ABC1007)自定義數(shù)據(jù)類(lèi)型 自定義數(shù)據(jù)類(lèi)型是把若干不同類(lèi)型的變量結(jié)合在一起作為一個(gè)數(shù)據(jù)類(lèi)型。定義后,這個(gè)數(shù)據(jù)類(lèi)型就可以和內(nèi)部數(shù)據(jù)類(lèi)型一樣的使用了。 創(chuàng)建自定義數(shù)據(jù)類(lèi)型用Type語(yǔ)句實(shí)現(xiàn),必須放在模塊的聲明部分,語(yǔ)法格式為:Private / Public Type 類(lèi)型名 元素名(下標(biāo)) As 數(shù)據(jù)類(lèi)型 元素名(下標(biāo)) As 數(shù)據(jù)類(lèi)型 End T
14、ype 說(shuō)明: 自定義類(lèi)型中的每個(gè)元素可為任何一種VB內(nèi)部數(shù)據(jù)類(lèi)型。 Private / Public用于指明所定義的數(shù)據(jù)類(lèi)型的有效范圍,對(duì)私有數(shù)據(jù)類(lèi)型,只能在該模塊中使用,對(duì)公有數(shù)據(jù)類(lèi)型,可在整個(gè)工程中使用。 聲明一個(gè)變量為自定義類(lèi)型后,引用該變量中元素的格式為:變量名元素名。 例如,為了描述通迅錄(包括姓名、地址、電話號(hào)碼)中的數(shù)據(jù),可定義自定義類(lèi)型: Private Type Address_BookName As String * 15Address As String * 30Phone As LongEnd Type然后聲明Address_Book類(lèi)型的變量,并賦值:Dim Rec
15、ord As Address_Book Record.Name = Zang Sa: Record.Address = Baoding: Record.Phone = 5019530 4常量和變量1)常量 在程序運(yùn)行過(guò)程中,其值始終保持不變的量稱(chēng)為常量。(1)符號(hào)常量 用戶(hù)聲明的常量是用一個(gè)符號(hào)名來(lái)代替數(shù)值或字符串,因此又稱(chēng)為符號(hào)常量。聲明常量的語(yǔ)法規(guī)則如下: Public / Private Const 常量名 As 類(lèi)型 = 表達(dá)式 說(shuō)明: 符號(hào)常量是有意義的名字,用來(lái)取代程序中永遠(yuǎn)不變的數(shù)值或字符串。不能對(duì)符號(hào)常量重新賦值,也不能像變量一樣修改。 符號(hào)常量要先定義后使用,在整個(gè)模塊中只需
16、定義一次。 表達(dá)式中不能含有變量和函數(shù)調(diào)用。(2)系統(tǒng)提供的常量 VB 6.0提供了大量應(yīng)用程序和控件的系統(tǒng)常量,例如,窗口狀態(tài)屬性WindowsState可接受的常量見(jiàn)表5.1。在程序中使用語(yǔ)句Form1.WindowsState = vbMaximized將窗口最大化,顯然比Form1.WindowsState = 2易于閱讀。 2)變量 變量是指在程序運(yùn)行期間其值可以改變的量。變量在使用前應(yīng)該聲明,以便系統(tǒng)為它分配存儲(chǔ)單元??稍凇巴ㄓ谩眳^(qū)中用Option Explicit語(yǔ)句強(qiáng)制要求變量先聲明、后使用,否則變量可以不聲明而直接使用。(1)聲明變量的方法 用語(yǔ)句聲明。 格式如下: 表5.1
17、 WindowsState常量常 量值描 述VbNormal0正常VbMinimized1最小化VbMaximized2最大化表5.1 WindowsState常量 Dim/ Public/ Private / Static 變量名 As 數(shù)據(jù)類(lèi)型, 變量名 As 數(shù)據(jù)類(lèi)型說(shuō)明: 若省略As,系統(tǒng)默認(rèn)為變體類(lèi)型。一條語(yǔ)句可聲明多個(gè)變量,但每個(gè)變量必須有自己的類(lèi)型聲明。例如:Dim Num As Single, unit As single 表示Num, unit都是Single數(shù)據(jù)類(lèi)型Dim Num, unit As single 表示Num為Variant類(lèi)型, 而unit為Single類(lèi)型
18、 變量被聲明后,被賦予默認(rèn)初值數(shù)值型為0,字符串型為空串,布爾型為False等。 對(duì)于字符串變量,根據(jù)其存放的字符串長(zhǎng)度是否固定,其定義方法有兩種: Dim 字符串變量名 AS String 聲明不定長(zhǎng)的字符串Dim 字符串變量名 AS String*字符數(shù) 聲明定長(zhǎng)的字符串 用類(lèi)型說(shuō)明符直接聲明變量 格式為: 變量名類(lèi)型符 不同數(shù)據(jù)類(lèi)型的類(lèi)型符見(jiàn)表5.2。如聲明整型變量item:item% 數(shù)據(jù)類(lèi)型整 型長(zhǎng)整型單精度型雙精度型貨幣型字符型類(lèi)型符%&!#$表5.2 數(shù)據(jù)類(lèi)型的類(lèi)型符 隱式聲明不聲明變量而直接使用,應(yīng)盡量避免使用。(2)變量的作用域變量的作用域是指變量的使用范圍。變量的聲明位置、
19、關(guān)鍵字不同,變量的有效范圍也不一樣。VB中變量的有效范圍有三個(gè)等級(jí)。 全局變量:在整個(gè)工程的所有模塊中均有效,主要用于在不同窗體或標(biāo)準(zhǔn)模塊之間傳送數(shù)據(jù)??稍跇?biāo)準(zhǔn)模塊的聲明部分,用Public聲明。 窗體/模塊級(jí)變量:只在該窗體或模塊的各個(gè)過(guò)程中使用,其他模塊中的代碼不能引用。在標(biāo)準(zhǔn)模塊的聲明部分,用Private或Dim聲明的變量為模塊級(jí)變量;在窗體的聲明部分,用任何關(guān)鍵字聲明的變量均為窗體級(jí)變量。 過(guò)程級(jí)(局部)變量:在過(guò)程中用Dim或Static聲明,只在本過(guò)程有效。Static用于定義靜態(tài)變量,Dim用于定義動(dòng)態(tài)變量。若某變量聲明為靜態(tài)變量,則重復(fù)調(diào)用該過(guò)程時(shí),靜態(tài)變量能夠保留原來(lái)的值,
20、而動(dòng)態(tài)變量的值,每次調(diào)用時(shí)都被初始化。如運(yùn)行下面的代碼: 運(yùn)行此工程,單擊窗體后,結(jié)果為:1 1 1 1 1 如將Form1_Load()中的Dim改為Static,運(yùn)行結(jié)果則為: 2 3 4 5 6 Option Explicit : Dim iPrivate Sub Form1_Click() For i = 1 To 5 : Form1_Load : Next iEnd SubPrivate Sub Form_Load() Dim a As Integer a = a + 1 Print a , End Sub5運(yùn)算符和表達(dá)式在VB的代碼中有四種運(yùn)算符:算術(shù)運(yùn)算符、字符串運(yùn)算符、關(guān)系運(yùn)算
21、符、邏輯運(yùn)算符。用這些運(yùn)算符將相關(guān)的常量、變量、函數(shù)等連接起來(lái)的式子即為表達(dá)式。1)算術(shù)運(yùn)算符 算術(shù)運(yùn)算符執(zhí)行簡(jiǎn)單的算術(shù)運(yùn)算,按優(yōu)先級(jí)由高到低依次為:(乘方)、(負(fù)號(hào))、*、/(乘、除)、(整除)、Mod(取余)、+、(加、減) VB中的加、減、乘法運(yùn)算和代數(shù)中的概念相同,而除法運(yùn)算有兩種,一種是普通除法“/”,另一種是整除“”(只取商數(shù)的整數(shù)部分)。例如,53的結(jié)果為1。 求余運(yùn)算就是求兩數(shù)相除后的余數(shù),若操作數(shù)中有小數(shù)點(diǎn),則先按四舍五入的原則處理,再進(jìn)行運(yùn)算。例如,8.6 Mod 3結(jié)果為0,10.4 Mod 4.2結(jié)果為2。2)字符串運(yùn)算符 字符串運(yùn)算符只有“&”和“+”,它們都可以將字
22、符串首尾連接起來(lái)。其主要區(qū)別如下。(1)書(shū)寫(xiě)格式“&”兩邊都要有空格,否則VB把“&”作為變量名的類(lèi)型聲明符。(2)運(yùn)算規(guī)則“+”兩邊變量的數(shù)據(jù)類(lèi)型要一致,否則出現(xiàn)錯(cuò)誤。若都是數(shù)值型的,則進(jìn)行加法運(yùn)算;若都是字符型的,則進(jìn)行字符串連接運(yùn)算;若有一個(gè)是數(shù)值,而另一個(gè)是數(shù)值字符串,則進(jìn)行數(shù)值運(yùn)算。 例如,x = 123,y =123,則x + y的結(jié)果為數(shù)值246,而x & y的結(jié)果為字符串123123。3)關(guān)系運(yùn)算符 關(guān)系運(yùn)算符不分優(yōu)先級(jí),一率從左到右執(zhí)行,VB的關(guān)系運(yùn)算符如下:(小于)、=(小于等于)、=(等于)、(不等于)、=(大于等于)、(大于) 關(guān)系運(yùn)算符可用于任何數(shù)據(jù)類(lèi)型的表達(dá)式(除對(duì)
23、象型),結(jié)果為邏輯值。若操作數(shù)為字符型時(shí),按字符的ASCII碼值從左到右逐個(gè)比較。ASCII碼值大的字符串大,若第一個(gè)字符相同,則比較第二個(gè)字符,以此類(lèi)推,直到比較出大小。若要忽略大小寫(xiě),可在模塊的聲明部分加入語(yǔ)句:Option Compare Text。日期型數(shù)據(jù)比較按日期先后,后邊的大于前邊的,如#2/5/99# 大于#2/2/99# ,布爾型比較True小于False。 4)邏輯運(yùn)算符 邏輯運(yùn)算符用于連接布爾型數(shù)據(jù),結(jié)果為邏輯值。5)表達(dá)式 由運(yùn)算符將常量、變量、函數(shù)等按照一定規(guī)則連接起來(lái)的有意義的式子即為表達(dá)式。 (1)書(shū)寫(xiě)規(guī)則 乘號(hào)不能省略。括號(hào)必須成對(duì)出現(xiàn),且都用圓括號(hào)。表達(dá)式從左
24、至右在同一基準(zhǔn)上書(shū)寫(xiě)。 (2)不同數(shù)據(jù)類(lèi)型的轉(zhuǎn)換 在算術(shù)運(yùn)算中,如果操作數(shù)具有不同的數(shù)據(jù)精度,則結(jié)果以精度高的數(shù)據(jù)類(lèi)型為準(zhǔn)。 表5.3 VB支持的邏輯運(yùn)算符(3)優(yōu)先級(jí) 不同類(lèi)型的運(yùn)算符優(yōu)先級(jí)為: 括號(hào)算術(shù)運(yùn)算符字符運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符 6函數(shù) 內(nèi)部函數(shù)是把一些常用的操作事先編寫(xiě)成一段程序代碼并封裝起來(lái),用戶(hù)通過(guò)函數(shù)名調(diào)用這段程序并返回一個(gè)函數(shù)值。函數(shù)按功能分類(lèi)如下。(1)數(shù)學(xué)函數(shù) 數(shù)學(xué)函數(shù)與數(shù)學(xué)中定義的函數(shù)一致,其參數(shù)和函數(shù)值的數(shù)據(jù)類(lèi)型均為數(shù)值型。常用數(shù)學(xué)函數(shù)見(jiàn)表5.4。 表5.3 VB支持的邏輯運(yùn)算符(2)字符串函數(shù) 字符串函數(shù)用于處理字符信息。函數(shù)名后有$符號(hào)的表示函數(shù)返回值為字符
25、串。函 數(shù) 名含 義例 子結(jié) 果Abs(N)取絕對(duì)值A(chǔ)bs(1.4)1.4Sqr(N)平方根Sqr(4)2Rnd(N)產(chǎn)生隨機(jī)數(shù)Rnd01之間的數(shù)Fix(N)取整函數(shù),無(wú)條件舍去小數(shù)部分Fix(1.23)Fix(3.5)13Int(N)取整函數(shù),返回不大于N的最大整數(shù)Int(1.23)Int(3.67)23 (正舍負(fù)入)表5.4 常用數(shù)學(xué)函數(shù) Len(字符串):返回字符串的長(zhǎng)度。 InStr(數(shù)值,字符串,子串,模式):返回子串在字符串中第一次出現(xiàn)的位置。數(shù)值指定開(kāi)始查找的位置,省略時(shí)從第一個(gè)字符開(kāi)始。模式為0或1。為0(默認(rèn))時(shí)區(qū)分大小寫(xiě),為1時(shí)不區(qū)分大小寫(xiě)。找到后返回子串在字符串中的起始位
26、置,若沒(méi)找到則返回0。 Mid$(字符串,m,n):從字符串的第m個(gè)字符起,取n個(gè)字符(省略n時(shí)取到末尾)。 Left$(字符串,n):返回字符串左邊n個(gè)字符。 Trim$(字符串):去掉字符串的前后空格,如Trim$( abcd )=abcd。(3)日期/時(shí)間函數(shù) Date$():返回系統(tǒng)當(dāng)前的日期。有$時(shí)返回值是字符型數(shù)據(jù)。 Time$():返回系統(tǒng)當(dāng)前的時(shí)間。如Time= 11:20:12 DateAdd(日期形式串,增減量,要增減的日期變量):對(duì)日期變量按日期形式做增減。日期形式串見(jiàn)表5.5。 日期形式y(tǒng)yyyqMwwDhnsyw意 義年季月周日時(shí)分秒一年的天數(shù)一周的天數(shù)表5.5 日期
27、形式串 DateDiff(日期形式串, 日期1, 日期2):返回日期2減去日期1所得的日期數(shù)。返回值的單位由日期形式串確定。 (4)轉(zhuǎn)換函數(shù) Chr$(n):將ASCII碼值轉(zhuǎn)換成字符串,其中0n255。如Chr$(65)= A。 Asc(字符串):返回字符串中第一個(gè)字母的ASCII碼,Chr$的反函數(shù)。例如:m = Asc(B) 結(jié)果為66 Val(字符串):將字符串轉(zhuǎn)換成數(shù)值量。串的組成必須符合數(shù)學(xué)規(guī)范。例如:a = Val(-13.409) a的值為-13.409 Str$(n):將數(shù)值型量轉(zhuǎn)換成字符型量。例如:s = Str(35) s的值為字符35 7數(shù)組 數(shù)組是用一個(gè)相同的變量名表
28、示,用不同下標(biāo)來(lái)區(qū)分的一系列變量。VB中有變量數(shù)組和控件數(shù)組兩種數(shù)組。1)變量數(shù)組 變量數(shù)組是在程序中聲明的一組下標(biāo)變量,下標(biāo)的個(gè)數(shù)稱(chēng)為數(shù)組的維數(shù)。在VB中,變量數(shù)組分為固定大小的數(shù)組和可變大小的數(shù)組。變量數(shù)組必須先聲明后使用。(1)固定大小的數(shù)組 數(shù)組所包含的元素個(gè)數(shù)是固定不變的。聲明時(shí)必須指定數(shù)組的大小。語(yǔ)法格式為:Dim/ Public/ Private 數(shù)組名(下界To 上界, 下界To 上界)As 數(shù)據(jù)類(lèi)型 (2)動(dòng)態(tài)數(shù)組 動(dòng)態(tài)數(shù)組可以在任何時(shí)候改變其大小。數(shù)組聲明方式為數(shù)組名后跟一對(duì)空的圓括號(hào)。如Dim Marr()。使用時(shí)要用ReDim語(yǔ)句為其分配實(shí)際的存儲(chǔ)空間。其語(yǔ)法格式為:
29、ReDim 動(dòng)態(tài)數(shù)組名(下界To上界,下界To上界)As 數(shù)據(jù)類(lèi)型 2)控件數(shù)組 控件數(shù)組由一組相同類(lèi)型的控件組成,它們共用一個(gè)名稱(chēng)。系統(tǒng)給每個(gè)元素賦一個(gè)索引號(hào)Index,依次為0、1、2、??丶?shù)組中各個(gè)元素共用同一個(gè)事件過(guò)程,在事件過(guò)程的聲明中增加Index參數(shù),通過(guò)Index參數(shù)值來(lái)指明是哪一個(gè)控件發(fā)生了該事件。創(chuàng)建一個(gè)控件數(shù)組有以下幾種方法: 先創(chuàng)建第一個(gè)控件,創(chuàng)建第二個(gè)控件時(shí)修改其N(xiāo)ame屬性為第一個(gè)控件的Name值,則VB詢(xún)問(wèn)是否創(chuàng)建控件數(shù)組。若回答“是”,則兩個(gè)控件的Index屬性值自動(dòng)被設(shè)置。 創(chuàng)建第一個(gè)控件后,將其復(fù)制到剪貼板,再粘貼到窗體中,則詢(xún)問(wèn)是否創(chuàng)建控件數(shù)組。若回答“
30、是”,后面的工作同第一種方法。 先創(chuàng)建第一個(gè)控件,修改其Index屬性值為0,創(chuàng)建后面的控件元素時(shí)設(shè)置相同的Name屬性即可。 運(yùn)行時(shí)添加控件。先在設(shè)計(jì)階段創(chuàng)建第一個(gè)控件,將其Index屬性設(shè)為0。再在代碼段用Load數(shù)組名(下標(biāo)值)添加其他元素,也可用Unload數(shù)組名(下標(biāo)值)刪除在代碼段添加的數(shù)組元素。最后,應(yīng)用Left和Top屬性來(lái)確定其在窗體中的位置,并將其Visible屬性設(shè)置為T(mén)rue。 8順序結(jié)構(gòu) 順序結(jié)構(gòu)中的語(yǔ)句依次執(zhí)行,常用賦值語(yǔ)句構(gòu)成。賦值語(yǔ)句用于數(shù)據(jù)的處理,其語(yǔ)法格式為:LET 變量名 = 表達(dá)式 功能: 計(jì)算賦值號(hào)右邊表達(dá)式的值并將結(jié)果賦給左邊的變量。 9條件分支結(jié)構(gòu)
31、 VB的選擇結(jié)構(gòu)可以根據(jù)需要判斷是否滿(mǎn)足某些條件,以決定程序的轉(zhuǎn)移。 1)二分支結(jié)構(gòu)行If:If 條件 Then 語(yǔ)句塊1 Else 語(yǔ)句塊2 塊If:塊If:If 條件 Then 語(yǔ)句塊1Else語(yǔ)句塊2 End If2)多分支結(jié)構(gòu)(1)多分支的IfThenElse結(jié)構(gòu)If 條件1 Then語(yǔ)句塊1ElseIf 條件2 Then語(yǔ)句塊2 Else 語(yǔ)句塊 End If (2)多分支的Select Case結(jié)構(gòu)。語(yǔ)法格 式為:Select Case 測(cè)試表達(dá)式Case 取值表1 語(yǔ)句塊1Case 取值表2 語(yǔ)句塊2Case Else 語(yǔ)句塊 End Select 功能為:首先測(cè)試“條件”,若條
32、件成立(結(jié)果為T(mén)rue)則執(zhí)行Then后面的語(yǔ)句,否則執(zhí)行Else后面的語(yǔ)句。省略Else子句為單分支結(jié)構(gòu),即條件為False時(shí)不進(jìn)行任何操作。 說(shuō)明: “條件”為具有布爾值的關(guān)系表達(dá)式或邏輯表達(dá)式,也可以是求值結(jié)果為數(shù)值的任何表達(dá)式,數(shù)值零解釋為False,任何非零值 解釋為T(mén)rue。 “語(yǔ)句塊”可以是一條語(yǔ)句或多條語(yǔ)句(以“:”分隔各語(yǔ)句)。 10循環(huán)結(jié)構(gòu) 在VB中可用循環(huán)結(jié)構(gòu)來(lái)解決需要重復(fù)執(zhí)行多次的語(yǔ)句,要求循環(huán)必須是有窮的。循環(huán)控制有兩種,一種循環(huán)次數(shù)已知,另一種循環(huán)有結(jié)束條件。 1)ForNext結(jié)構(gòu) 語(yǔ)法格式為:For 循環(huán)控制變量 = 初值 To 終值 Step 步長(zhǎng) 語(yǔ)句塊 E
33、xit For 語(yǔ)句塊 Next 循環(huán)控制變量 執(zhí)行過(guò)程:初值賦給循環(huán)控制變量。與終值比較,若超過(guò)終值則退出循環(huán),否則執(zhí)行循環(huán)體。循環(huán)控制變量增加一個(gè)步長(zhǎng),與終值比較,如此重復(fù)。 2)Do While Loop語(yǔ)句 語(yǔ)法格式為:Do While 條件表達(dá)式語(yǔ)句塊Exit Do語(yǔ)句塊Loop 執(zhí)行過(guò)程:計(jì)算條件表達(dá)式,若值為真,則執(zhí)行循環(huán)體,否則退出循環(huán)。執(zhí)行完一遍循環(huán)體后,再重新計(jì)算表達(dá)式的值看是否再進(jìn)行循環(huán)。 3)DoLoop While語(yǔ)句 語(yǔ)法格式為:Do語(yǔ)句塊Exit Do語(yǔ)句塊Loop While 條件表達(dá)式 執(zhí)行過(guò)程為,執(zhí)行循環(huán)體,計(jì)算條件表達(dá)式,并根據(jù)條件表達(dá)式的值決定是否再執(zhí)行
34、循環(huán)體。若條件表達(dá)式的值為真,則重復(fù)執(zhí)行循環(huán)體,否則退出循環(huán),執(zhí)行Loop語(yǔ)句后面的語(yǔ)句。 4)DoLoop Until語(yǔ)句 語(yǔ)法格式為:Do 語(yǔ)句塊Exit Do語(yǔ)句塊Loop Until 條件表達(dá)式 執(zhí)行過(guò)程為,首先執(zhí)行循環(huán)體,計(jì)算條件表達(dá)式的值,若值為假,則重復(fù)執(zhí)行循環(huán)體;若為真,則退出循環(huán),執(zhí)行Loop語(yǔ)句后面的語(yǔ)句。 5.1.3 常用控件介紹 控件是構(gòu)成VB程序的主要對(duì)象,用來(lái)獲取用戶(hù)的輸入信息、顯示輸出信息或訪問(wèn)其他應(yīng)用程序并處理數(shù)據(jù)??丶耐庥^和窗體一起構(gòu)成應(yīng)用程序的界面,程序的代碼也主要是控件的事件過(guò)程。標(biāo)準(zhǔn)控件是最基本、最常用的控件,啟動(dòng)VB后顯示在工具箱中。1基本屬性 VB
35、中每個(gè)對(duì)象都有自己的屬性,程序中使用一個(gè)對(duì)象時(shí),都要設(shè)置它的屬性滿(mǎn)足程序的要求。下面首先介紹標(biāo)準(zhǔn)控件所共有的屬性。 1)Name(名稱(chēng)) Name是對(duì)象的名稱(chēng),用于標(biāo)識(shí)不同的對(duì)象。默認(rèn)值是對(duì)象類(lèi)型加序號(hào)。Name屬性在程序運(yùn)行時(shí)只讀。訪問(wèn)對(duì)象的屬性和方法的語(yǔ)法格式為:對(duì)象名屬性名 或 對(duì)象名方法名 參數(shù)表 2)Caption(標(biāo)題) Caption屬性用于設(shè)置對(duì)象的標(biāo)題。窗體的標(biāo)題是顯示在其標(biāo)題欄中的文本;控件的標(biāo)題是顯示在該控件中或其附近的文本,一般用于功能描述。 3)Height、Width、Left、Top(大小和位置) Height和Width用于設(shè)置對(duì)象的高度和寬度。Left和Top
36、用于設(shè)置對(duì)象的位置:對(duì)于窗體,Left是窗體左邊框到屏幕左邊的距離,Top是窗體上邊框到屏幕頂部的距離;對(duì)于窗體中的控件,其位置是相對(duì)于包容它的窗體而言。若這兩個(gè)屬性為負(fù)數(shù),表示窗體移出了屏幕或控件移出了窗體。 4)Font(字體) Font用于設(shè)置對(duì)象中文字的字體、字形、字號(hào)等。Font本身作為一個(gè)對(duì)象,具有Name(字體名)、Bold(粗體)、UnderLine(下畫(huà)線)、Italic(斜體)、Size(字號(hào))等屬性。當(dāng)給具有Font屬性的對(duì)象設(shè)置有關(guān)字體的屬性時(shí),可通過(guò)其Font屬性設(shè)置Font對(duì)象的屬性來(lái)實(shí)現(xiàn)。運(yùn)行階段使用代碼設(shè)置的語(yǔ)句格式為: 對(duì)象名.Font.Font對(duì)象的屬性名
37、= 屬性值 5)Enabled(有效性)用于設(shè)置對(duì)象是否能響應(yīng)用戶(hù)產(chǎn)生的事件。6)Visible(可視性)用于設(shè)置對(duì)象是否可見(jiàn)。7)Picture用于設(shè)置對(duì)象中顯示的圖像。設(shè)置方法有: 設(shè)計(jì)階段通過(guò)LoadPicture對(duì)話框設(shè)置,或從剪貼板粘貼圖形到對(duì)象上。 運(yùn)行階段用LoadPicture()函數(shù)裝入,語(yǔ)法格式為:對(duì)象名.Picture = LoadPicture(d:path圖形文件名) 8)AutoSize(自動(dòng)調(diào)整大?。?用于設(shè)置控件是否能自動(dòng)調(diào)整大小。 2基本事件 事件是對(duì)象能識(shí)別的動(dòng)作。在事件驅(qū)動(dòng)編程中,主要的代碼寫(xiě)在事件過(guò)程中,它規(guī)定了產(chǎn)生某一事件時(shí)程序完成的功能,用于對(duì)事件做
38、出響應(yīng)。1)Click、DblClick(單擊和雙擊事件) 單擊某對(duì)象時(shí),引發(fā)該對(duì)象的Click事件;雙擊某對(duì)象時(shí),引發(fā)該對(duì)象的DblClick事件。 2)GotFocus、LostFocus(焦點(diǎn)事件) 當(dāng)一個(gè)對(duì)象接收到焦點(diǎn)時(shí),發(fā)生GotFocus事件,失去焦點(diǎn)時(shí)發(fā)生LostFocus事件。3)Load、UnLoad(裝載和卸載) 加載窗體時(shí)發(fā)生窗體的Load事件,卸載窗體時(shí)發(fā)生UnLoad事件。 一般在Load事件過(guò)程中書(shū)寫(xiě)初始化代碼。如初始化窗體變量、為控件的屬性指定默認(rèn)值、裝入列表框中的目錄項(xiàng)等。UnLoad事件過(guò)程一般處理關(guān)閉相關(guān)的對(duì)象及文件、數(shù)據(jù)存盤(pán)等操作。 3基本方法 1)Pri
39、nt、Cls(輸出和清除) Print用于在窗體、圖片框、調(diào)試窗口、打印機(jī)等對(duì)象上輸出文本;Cls清除運(yùn)行時(shí)由繪圖方法或Print方法在窗體、圖片框上產(chǎn)生的圖形和文本。語(yǔ)法格式為: 對(duì)象名.Print 輸出項(xiàng)表; 對(duì)象名.Cls 用Print方法輸出的文本VB視為圖形文本,默認(rèn)對(duì)象名時(shí)指當(dāng)前具有焦點(diǎn)的對(duì)象。輸出項(xiàng)之間以逗號(hào)或分號(hào)分隔,以逗號(hào)分隔時(shí)按標(biāo)準(zhǔn)格式輸出,以分號(hào)分隔時(shí)按緊湊格式輸出。 2)Hide、Show(隱藏和顯示) Hide方法用于隱藏窗體對(duì)象,Show方法用于顯示窗體對(duì)象。語(yǔ)法格式為: 窗體名Hide 或 窗體名Show 0/1 選擇參數(shù)1時(shí)顯示為模式窗體,在關(guān)閉之前不能進(jìn)行任何
40、其他操作。 3)Move(移動(dòng)) Move方法用于在屏幕上移動(dòng)窗體或在窗體中移動(dòng)控件,同時(shí)可改變大小。語(yǔ)法格式為: 對(duì)象名Move Left ,Top ,Width ,Height 參數(shù)表示對(duì)象移動(dòng)后新的Left、Top、Width、Height屬性。僅Left參數(shù)是必須的,要指定后面的參數(shù),其前面的參數(shù)也必須指定。4)SetFocus(焦點(diǎn)) 語(yǔ)法格式: 對(duì)象名SetFocus 指定對(duì)象必須是能接收焦點(diǎn)的對(duì)象,即該對(duì)象包括SetFocus方法,同時(shí)是可以接收焦點(diǎn)的。在調(diào)用SetFocus方法后,指定對(duì)象就有了焦點(diǎn),下面的任何輸入都指向該對(duì)象。 4標(biāo)準(zhǔn)控件的其他屬性1)命令按鈕命令按鈕(Com
41、mandButton)是應(yīng)用程序使用最多的控件之一,常用來(lái)接收用戶(hù)的操作信息,用以激發(fā)某些事件,處理一些事情。 Default:用于設(shè)置一個(gè)命令按鈕是否為默認(rèn)按鈕,值為T(mén)rue時(shí)為默認(rèn)按鈕,默認(rèn)值為False。對(duì)于默認(rèn)命令按鈕,按回車(chē)鍵時(shí),引發(fā)其Click事件。一個(gè)窗體上至多有一個(gè)默認(rèn)命令按鈕。 Cancel:用于設(shè)置一個(gè)命令按鈕是否為Cancel按鈕。對(duì)于Cancel命令按鈕,按Esc鍵時(shí)引發(fā)其Click事件。一個(gè)窗體上至多有一個(gè)Cancel按鈕。 Style:設(shè)置命令按鈕的樣式。默認(rèn)值為0,表示是標(biāo)準(zhǔn)按鈕,值為1是圖形按鈕。 Picture:設(shè)置在命令按鈕上顯示的圖形。 2)圖像框和圖片框
42、 圖像框和圖片框均可用來(lái)顯示圖形,包括位圖、圖標(biāo)、JPEG或GIF格式的圖形文件等。除Picture外,主要屬性有: Autosize:(圖片框具有)用于設(shè)置控件的大小是否自動(dòng)調(diào)整。值為T(mén)rue時(shí),自動(dòng)調(diào)整大小,以顯示裝入的整個(gè)圖片;值為 False時(shí),保持控件大小,圖片超出部分截除。 Stretch:(圖像框?qū)S校┯糜谠O(shè)置裝入的圖片是否自動(dòng)調(diào)整大小以適應(yīng)圖像框的大小。值為T(mén)rue時(shí),圖片自動(dòng)伸縮,以充滿(mǎn)整個(gè)圖像框,即圖片適應(yīng)圖像框;值為False時(shí),圖像框自動(dòng)調(diào)整大小,以顯示裝入的整個(gè)圖片,即圖像框適應(yīng)圖片。3)標(biāo)簽 標(biāo)簽通常用于顯示文本,標(biāo)識(shí)窗體上不具有Caption屬性的對(duì)象。除Capt
43、ion、AutoSize、BorderStyle、字體、顏色等屬性以外,標(biāo)簽還有以下重要的屬性: Alignment:設(shè)置標(biāo)簽中標(biāo)題文本的對(duì)齊方式。 0文本左對(duì)齊(默認(rèn));1文本右對(duì)齊;2文本居中。 BackStyle:用于設(shè)置標(biāo)簽的背景是否透明。 True透明,背景及任何圖形在控件之后可見(jiàn)。 False不透明(默認(rèn)),其BackColor屬性設(shè)置填充控件。 WordWrap:設(shè)置標(biāo)簽是否可以在垂直方向擴(kuò)展,以適應(yīng)Caption屬性指定的文本。 True垂直方向擴(kuò)展(水平尺寸不變),以多行顯示文本。False水平方向延伸,以容納整個(gè)文本。 4)文本框 文本框最重要的屬性是Text屬性和關(guān)于字體
44、的屬性。Text屬性值是文本框中顯示的文本。其他主要的屬性有: MultiLine:用于設(shè)置文本框是否可以輸入多行文字。默認(rèn)值為False。 Locked:用于設(shè)置文本框的內(nèi)容是否可以編輯。若值為T(mén)rue,則文本為只讀文本。 PasswordCHar:用來(lái)設(shè)置輸入密碼時(shí)顯示的字符。比如,屬性值設(shè)置為“*”,則在文本框中輸入的字符,都會(huì)顯示為“*”。 SelText:在程序運(yùn)行過(guò)程中,對(duì)文本內(nèi)容進(jìn)行選擇操作時(shí),用于標(biāo)識(shí)被選中的文本。用該屬性可實(shí)現(xiàn)“塊復(fù)制”、“塊移動(dòng)”等與Windows剪貼板交換信息的操作。 SelLength:程序運(yùn)行時(shí),被選中文本的長(zhǎng)度。 SelStart:程序運(yùn)行時(shí),被選中
45、文本的開(kāi)始位置。如果沒(méi)有選中的文本,則該屬性值表示插入點(diǎn)的位置。 該控件的主要事件有鍵盤(pán)事件(KeyPress)、焦點(diǎn)事件(GotFocus和LostFocus)和Change事件。 5)框架 框架用于將其他控件分組。主要屬性Caption設(shè)置顯示在框架左上角的標(biāo)題文本。 在框架中創(chuàng)建控件時(shí),必須先創(chuàng)建框架控件,然后從工具箱中選中控件并把它畫(huà)到框架中。不能把控件建立在窗體上,再用鼠標(biāo)拖到框架中。如果想把已建立好的若干控件分組,并放到框架上,可以先選中要分為一組的控件,“剪切”到剪貼板上,然后選定框架控件,再使用“粘貼”命令。 6)單選按鈕 單選按鈕提供多個(gè)可選項(xiàng),只能選擇其中的一項(xiàng)。主要屬性有
46、: Value:指出單選按鈕是否被選中。如選中,則值為T(mén)rue。 Alignment:設(shè)置Caption屬性的文本顯示在控件右邊(值為0)還是左邊(值為1)。 Style:用于設(shè)置控件外觀的形式。值為0時(shí)是標(biāo)準(zhǔn)樣式,值為1時(shí)是圖形樣式。 單選按鈕支持Click事件,通過(guò)檢測(cè)該控件的Value值,決定執(zhí)行相應(yīng)的命令。 7)復(fù)選框 復(fù)選框提供Yes/No或True/False選項(xiàng),以確定是否選中某一項(xiàng)目。復(fù)選框組中各個(gè)控件獨(dú)立,可以同時(shí)選中多個(gè)選項(xiàng)。Value屬性用于判斷復(fù)選框處于什么狀態(tài):0未選中狀態(tài)。1選中狀態(tài)。2禁用狀態(tài)。 復(fù)選框支持Click事件,根據(jù)復(fù)選框的某種狀態(tài)執(zhí)行相應(yīng)的操作。 8)
47、列表框與組合框 列表框(ListBox)提供一系列表項(xiàng),用戶(hù)可從中選擇一項(xiàng)或多項(xiàng),顯示不下時(shí)自動(dòng)加滾動(dòng)條。組合框(ComboBox)是文本框和列表框的組合,用戶(hù)可在文本框中輸入信息,也可從列表框中選擇表項(xiàng),但一次只能選擇一項(xiàng)。(1)主要屬性 ListCount:指示列表框或組合框中表項(xiàng)的數(shù)目,該屬性只能在程序中讀取。 List:列表框或組合框中一系列表項(xiàng)可視為一個(gè)字符串?dāng)?shù)組List,每個(gè)表項(xiàng)是其一元素。設(shè)計(jì)時(shí)可通過(guò)該屬性向列表框或組合框中添加表項(xiàng),運(yùn)行時(shí)可用“對(duì)象名.List(Index)”來(lái)讀取其表項(xiàng)。List數(shù)組的下標(biāo)從0開(kāi)始,即第一項(xiàng)的序號(hào)(Index值)為0,第2項(xiàng)為1,最后一項(xiàng)為L(zhǎng)i
48、stCount 1。 ListIndex:指示列表框或組合框中被選中表項(xiàng)的序號(hào)(索引值),若沒(méi)有項(xiàng)被選中,則該屬性值為1。設(shè)計(jì)時(shí)不可用。 Text:指示列表框中最后一次選中的表項(xiàng)文本,或在組合框的編輯域中輸入的文本。 Selected:該屬性是一個(gè)邏輯數(shù)組,其元素對(duì)應(yīng)列表框中相應(yīng)的項(xiàng),表示對(duì)應(yīng)的項(xiàng)在程序運(yùn)行期間是否被選中。例如,Selected(0)的值為T(mén)rue表示第一個(gè)表項(xiàng)被選中,為False表示第一個(gè)表項(xiàng)不被選中。該屬性只能在程序運(yùn)行時(shí)設(shè)置或引用。(2)常用方法 AddItem:在列表框或組合框中加入表項(xiàng)。語(yǔ)法格式為:對(duì)象名AddItem 表項(xiàng)文本 ,Index 指定Index時(shí),將新表
49、項(xiàng)加入到指定位置,否則加入到排序位置(Sorted為T(mén)rue時(shí))或尾部。 RemoveItem:從列表框或組合框的列表中刪除一個(gè)表項(xiàng)文本。語(yǔ)法格式為: 對(duì)象名RemoveItem Index Clear:刪除列表框中所有表項(xiàng)。 9)計(jì)時(shí)器控件 計(jì)時(shí)器控件(Timer)按一定時(shí)間間隔自動(dòng)觸發(fā)其Timer事件,在事件過(guò)程中編寫(xiě)代碼,可以有規(guī)律地執(zhí)行某種操作。計(jì)時(shí)器控件運(yùn)行期間不可見(jiàn)。 計(jì)時(shí)器控件最重要的屬性是Interval。該屬性用于設(shè)置或返回Timer事件發(fā)生的時(shí)間間隔,單位為毫秒。Enabled屬性決定計(jì)時(shí)器控件是否對(duì)其Interval屬性做出響應(yīng)。 計(jì)時(shí)器控件最常用的事件是Timer事件,
50、在Interval屬性為T(mén)rue時(shí),每隔一個(gè)Interval時(shí)間間隔引發(fā)一次。 5.1.4 可視化程序設(shè)計(jì)的一般過(guò)程 創(chuàng)建VB應(yīng)用程序一般包括以下4個(gè)主要的步驟: 建立界面:建立應(yīng)用程序界面,包括創(chuàng)建窗體和控件。 設(shè)置屬性:設(shè)置對(duì)象的屬性,滿(mǎn)足應(yīng)用程序的要求。 編寫(xiě)代碼:打開(kāi)代碼窗口,從“對(duì)象框”中選擇對(duì)象,從“過(guò)程框”中選擇事件,系統(tǒng)自動(dòng)建立事件過(guò)程模板,在其中編寫(xiě)程序代碼。 保存、調(diào)試運(yùn)行:運(yùn)行應(yīng)用程序是開(kāi)發(fā)的后期工作,用以檢查是否有錯(cuò)誤、能否運(yùn)行通過(guò)、結(jié)果是否符合要求等。 5.1.5 程序調(diào)試 在編寫(xiě)程序的過(guò)程中不可避免地會(huì)出現(xiàn)錯(cuò)誤,錯(cuò)誤分為語(yǔ)法錯(cuò)誤、運(yùn)行錯(cuò)誤和邏輯錯(cuò)誤三類(lèi)。調(diào)試是指在程
51、序中查找并修改錯(cuò)誤的過(guò)程。VB本身不能更改程序中的錯(cuò)誤,但借助于調(diào)試工具可以了解應(yīng)用程序的運(yùn)行情況,幫助用戶(hù)迅速地發(fā)現(xiàn)錯(cuò)誤。 1調(diào)試工具欄 程序的調(diào)試包括斷點(diǎn)、中斷表達(dá)式、監(jiān)視表達(dá)式、顯示變量和屬性的值等。這些調(diào)試工具可從“調(diào)試”菜單上調(diào)用,也可使用“調(diào)試”工具欄。調(diào)試工具欄提供了對(duì)調(diào)試程序非常有用的幾個(gè)按鈕,如圖5.5所示,各按鈕的功能見(jiàn)表5.7。 開(kāi)始/重新開(kāi)始結(jié)束逐語(yǔ)句跳出切換斷點(diǎn)本地窗口中斷監(jiān)視窗口立即窗口逐過(guò)程快速監(jiān)視調(diào)用堆棧表5.7 調(diào)試按鈕功能說(shuō)明調(diào)試按鈕切換斷點(diǎn)單步執(zhí)行過(guò)程單步跳出本地窗口立即窗口監(jiān)視窗口快速監(jiān)視調(diào)用堆棧功能說(shuō)明 在程序代碼中確定一行,設(shè)置/取消一個(gè)斷點(diǎn),程序執(zhí)
52、行到該行語(yǔ)句停下來(lái)執(zhí)行方式啟動(dòng)按鈕,單擊一次,執(zhí)行下一條語(yǔ)句,并跟蹤到過(guò)程中執(zhí)行方式啟動(dòng)按鈕,單擊一次,執(zhí)行下一條語(yǔ)句,但不跟蹤到過(guò)程中跳出當(dāng)前過(guò)程,執(zhí)行其他部分,并在調(diào)用過(guò)程的下一行處中斷執(zhí)行顯示局部變量的當(dāng)前值當(dāng)應(yīng)用程序處于中斷模式時(shí),允許執(zhí)行代碼或查詢(xún)變量顯示選定表達(dá)式或變量的值當(dāng)應(yīng)用程序處于中斷模式時(shí),列出某表達(dá)式或變量的當(dāng)前值當(dāng)處于中斷模式時(shí),用一個(gè)對(duì)話框顯示所有已被調(diào)用但尚未完成運(yùn)行的過(guò)程表5.7 調(diào)試按鈕功能說(shuō)明 2使用調(diào)試窗口 VB有三個(gè)調(diào)試窗口:“本地”窗口、“立即”窗口和“監(jiān)視”窗口。1)“本地”窗口 顯示當(dāng)前過(guò)程中所有局部變量的值。當(dāng)程序的執(zhí)行從一個(gè)過(guò)程切換到另一個(gè)過(guò)程時(shí)
53、,窗口中的內(nèi)容會(huì)發(fā)生改變?!氨镜亍贝翱谥杏腥齻€(gè)參數(shù)?!氨磉_(dá)式”表示表達(dá)式或變量的名稱(chēng),“值”表示程序在當(dāng)前運(yùn)行狀態(tài)下表達(dá)式或變量的當(dāng)前值,“類(lèi)型”表示表達(dá)式或變量的類(lèi)型。2)“立即”窗口 顯示代碼中正在調(diào)試的語(yǔ)句所產(chǎn)生的信息,可以在程序代碼中利用Debug.Print方法,把輸出項(xiàng)送到“立即”窗口中。 3)“監(jiān)視”窗口 用于顯示當(dāng)前的監(jiān)視表達(dá)式,可幫助用戶(hù)隨時(shí)觀察某些表達(dá)式或變量的值的變化情況,以確定這樣的結(jié)果是否正確。 3使用中斷 在設(shè)計(jì)狀態(tài)下可以改變程序的界面或代碼,但不能看程序的運(yùn)行效果。在運(yùn)行狀態(tài)可以觀察應(yīng)用程序的行為,但不能修改代碼。然而在中斷狀態(tài)下,可中止程序并從代碼窗口修改程序,
54、保留變量的值、窗體和控件的屬性,觀察應(yīng)用程序的界面情況。 進(jìn)入中斷的方法: 在程序中加入Stop語(yǔ)句,生成.exe文件時(shí)必須將其刪除。 在代碼窗口中把插入點(diǎn)移到要設(shè)置或刪除斷點(diǎn)的語(yǔ)句處,直接按F9鍵,即可設(shè)置或刪除斷點(diǎn)。也可從“調(diào)試”菜單中執(zhí)行“清除所有斷點(diǎn)”菜單命令來(lái)清除所有斷點(diǎn)。 運(yùn)行“運(yùn)行”“中斷”菜單命令進(jìn)入中斷。 【例5.7】 算術(shù)教師。 程序自動(dòng)出一系列1,100以?xún)?nèi)整數(shù)的加、減、乘、除算式,輸入答案后判斷是否正確,結(jié)束時(shí)給出成績(jī)。(1)程序設(shè)計(jì)用隨機(jī)函數(shù)產(chǎn)生兩個(gè)運(yùn)算數(shù)和運(yùn)算符,運(yùn)算數(shù)的表達(dá)式為int(rnd*100)+1。可以分別用1、2、3、4表示、,則表達(dá)式為int(rnd*
55、4+1)。(2)界面設(shè)計(jì)界面上放置一個(gè)標(biāo)簽、一個(gè)文本框、兩個(gè)按鈕和一個(gè)圖片框。(3)屬性設(shè)置 各控件的屬性設(shè)置見(jiàn)表5.8。 5.2 實(shí)訓(xùn)案例 控 件 名CaptionTextFontBorderStyleText1空白粗體14號(hào)默認(rèn)(1)Label1空白粗體14號(hào)0Picture1粗體14號(hào)Command1確定粗體14號(hào)Command2計(jì)分粗體14號(hào)表5.8 例5.7的屬性設(shè)置 (4)編寫(xiě)代碼Dim Swrong, Sright, Result, SexpPrivate Sub Form_Load()Dim Sdata1, Sdata2, Op, NopSdata1 = Int(100 * R
56、nd) + 1 :Sdata2 = Int(100 * Rnd) + 1Nop = Int(4 * Rnd) + 1Select Case NopCase 1Op = + : Result = Sdata1 + Sdata2Case 2Op = : Result = Sdata1 Sdata2Case 3Op = : Result = Sdata1 * Sdata2Case 4Op = : Result = Sdata1 / Sdata2End SelectSexp = Sdata1 & Op & Sdata2 & = : Label1.Caption = SexpEnd SubPrivate
57、 Sub Command1_Click() If Val(Text1) = Result Then Picture1.Print Sexp; Text1; Tab(15); : Sright = Sright + 1 Else Picture1.Print Sexp; Text1; Tab(15); : Swrong = Swrong + 1End IfText1 = : Form_Load : Text1.SetFocusEnd SubPrivate Sub Command2_Click() Picture1.Print - Picture1.Print “一共計(jì)算” & Sright + Swrong & “道題”; “得分為” & Int(Sright / (Swrong + Sright) * 100) End Sub 5.3.1 順序、選擇、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)及控件的使用 1實(shí)驗(yàn)?zāi)康?掌握控件的屬性的設(shè)置方法。 練習(xí)使用循環(huán)和分支語(yǔ)句,以及對(duì)控件事件處理代碼的編寫(xiě)。2實(shí)驗(yàn)內(nèi)容1)數(shù)的運(yùn)算 創(chuàng)建如圖5.6所示的窗體。 單擊“查找”按
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉆石畫(huà)教案完整版本
- 《公務(wù)員法》知識(shí)考試題庫(kù)150題(含答案)
- 2025年江蘇信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年新疆體育職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 幼兒園主題秋游活動(dòng)策劃方案五篇
- 公司居間服務(wù)合同模板
- 互聯(lián)網(wǎng)軟件開(kāi)發(fā)及維護(hù)合同
- 陶瓷銷(xiāo)售合同范本
- 電腦獨(dú)家代理銷(xiāo)售合同
- 貸款第三方擔(dān)保合同
- 《中國(guó)心力衰竭診斷和治療指南(2024)》解讀完整版
- 《檔案管理課件》課件
- 2025年中考物理終極押題猜想(新疆卷)(全解全析)
- 抽水蓄能電站項(xiàng)目建設(shè)管理方案
- 電動(dòng)工具培訓(xùn)課件
- 《智能網(wǎng)聯(lián)汽車(chē)智能傳感器測(cè)試與裝調(diào)》電子教案
- GB/T 32399-2024信息技術(shù)云計(jì)算參考架構(gòu)
- 腫瘤患者全程管理
- 特殊教育導(dǎo)論 課件 第1-6章 特殊教育的基本概念-智力異常兒童的教育
- DB13(J)T145-2012建筑工程資料管理規(guī)程(上冊(cè))
- 企業(yè)職務(wù)犯罪法制講座課件
評(píng)論
0/150
提交評(píng)論