版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、新編Visual Basic程序設(shè)計(jì)教程第1章 VB程序開發(fā)環(huán)境Visual Basic發(fā)展概況VB的安裝與啟動(dòng)VB 6.0的集成開發(fā)環(huán)境VB應(yīng)用程序的開發(fā)步驟1.1 Visual Basic發(fā)展概況 Visual Basic是Windows環(huán)境下最具吸引力的程序設(shè)計(jì)語言之一,是從Basic(Beginners All-purpose Symbolic Instruction Code)語言發(fā)展而來的,繼承了Basic語言易學(xué)易用的特點(diǎn)。在開發(fā)圖形用戶界面GUI(Graphics User Interface)時(shí),它不需要編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對象拖放到屏幕
2、上,由Visual Basic自動(dòng)將對象的程序代碼和數(shù)據(jù)生成并封裝起來,使初學(xué)者很容易接受并掌握其開發(fā)技術(shù)。 Basic語言誕生于20世紀(jì)6.0年代,為數(shù)據(jù)運(yùn)算和處理提供了強(qiáng)有力的工具。1976年,Microsoft公司的Bill Gates和Allen開發(fā)出了應(yīng)用于微機(jī)系統(tǒng)的Basic語言的早期的版本。20世紀(jì)80年代初,Microsoft公司又推出了適用于IBM PC機(jī)的GW Basic版本,稍后又推出了更新的Quick Basic版本。在操作系統(tǒng)由DOS升級至Windows后,于1991年,Microsoft公司及時(shí)開發(fā)出了基于圖形用戶界面的Visual Basic1.0版,到1998年
3、,Visual Basic已經(jīng)發(fā)展到了6.0版。1.1.1 Visual Basic的特點(diǎn) Visual Basic(以下簡稱VB)的特點(diǎn)如下:(1)可視化的面向?qū)ο缶幊淘谟肰B編寫程序時(shí),采用了面向?qū)ο螅∣bject Oriented Programming,簡稱OOP)的程序設(shè)計(jì)思想。它的基本思路是把復(fù)雜的程序設(shè)計(jì)問題分解為一個(gè)個(gè)能夠完成獨(dú)立功能的相對簡單的對象,即多個(gè)不同功能的控件來實(shí)現(xiàn),如把窗口分解為多個(gè)按鈕控件、菜單控件、工具條控件等,這些控件的不同組合就可實(shí)現(xiàn)不同的功能。(2)事件驅(qū)動(dòng)機(jī)制在Windows環(huán)境下,程序的運(yùn)行是以事件驅(qū)動(dòng)的。VB中的程序是為事件編寫的,當(dāng)某一事件發(fā)生時(shí)
4、(如移動(dòng)鼠標(biāo)或按下按鍵等),為該事件編寫的程序才能得到執(zhí)行,也就是運(yùn)行相應(yīng)的程序處理該事件。這種處理方式更符合人們?nèi)粘5乃季S習(xí)慣,也為多任務(wù)方式提供了保證。(3)結(jié)構(gòu)化的程序設(shè)計(jì)語言VB在繼承Basic語言易學(xué)易用特點(diǎn)的基礎(chǔ)上,革新了程序設(shè)計(jì)的結(jié)構(gòu)方式,使其適應(yīng)了結(jié)構(gòu)化開發(fā)的需要,并且豐富了其數(shù)據(jù)類型,擴(kuò)充了與其他軟件的數(shù)據(jù)訪問方式。(4)開放的數(shù)據(jù)庫功能VB提供了強(qiáng)大的數(shù)據(jù)庫訪問功能,利用其數(shù)據(jù)控件和數(shù)據(jù)訪問對象幾乎可以訪問和處理任何數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫。(5)交互式的集成開發(fā)方式VB為編程提供了一個(gè)集成開發(fā)環(huán)境。在這個(gè)環(huán)境中,編程者可以設(shè)計(jì)界面、編寫程序代碼、交互式地調(diào)試程序。例如,在輸入
5、代碼時(shí),可同步顯示對應(yīng)的語法成份的結(jié)構(gòu)表示,并及時(shí)捕捉拼寫錯(cuò)誤;而在調(diào)試程序時(shí),能定位錯(cuò)誤位置,顯示出錯(cuò)信息等。最后,把應(yīng)用程序編譯成可在Windows中直接運(yùn)行的可執(zhí)行文件,并為它生成安裝程序,為程序開發(fā)者提供了極大的方便。1.1.2 Visual Basic版本簡介Microsoft公司自1991年開發(fā)出了基于圖形用戶界面的Visual Basic1.0版后,經(jīng)過不斷地改進(jìn)和升級,其功能越來越強(qiáng)大和完善,至今已發(fā)展到了6.0版。在Visual Basic6.0版中,Microsoft公司提供了三種版本:學(xué)習(xí)版、專業(yè)版和企業(yè)版,可以滿足多種不同的需要,具體介紹如下:1學(xué)習(xí)版用來開發(fā)Windo
6、ws 9x和Windows NT應(yīng)用程序。該版本包括所有的內(nèi)部控件(標(biāo)準(zhǔn)控件)以及網(wǎng)格、選項(xiàng)卡和數(shù)據(jù)綁定控件。學(xué)習(xí)版提供的文檔有程序員指南,聯(lián)機(jī)幫助及Visual Basic聯(lián)機(jī)手冊。2專業(yè)版向計(jì)算機(jī)專業(yè)人員提供了一套功能完整的工具,包含了學(xué)習(xí)版的所有功能,還加上了附加的ActiveX控件、Internet Information Server應(yīng)用程序設(shè)計(jì)器、集成數(shù)據(jù)工具和數(shù)據(jù)環(huán)境、Active Data objects、以及動(dòng)態(tài)HTML頁面設(shè)計(jì)器。專業(yè)版提供的文檔有程序員指南,聯(lián)機(jī)幫助及部件工具指南。3企業(yè)版允許專業(yè)人員以小組的形式來創(chuàng)建強(qiáng)健的分布式應(yīng)用程序。它包括專業(yè)版的所有功能,連同自動(dòng)
7、化管理器、部件管理器、數(shù)據(jù)庫管理工具等,如SQL Server、Microsoft Transaction Server、Internet Information Server、Visual SourceSafe、SNA Server 等等。企業(yè)版提供的文檔包括專業(yè)版的所有文檔,還有客戶/服務(wù)器應(yīng)用程序開發(fā)指南和“SourceSafe Users Guide”。1.1.3 運(yùn)行VB 6.0的硬件和軟件要求由于VB6.0于上世紀(jì)末就已經(jīng)開發(fā)成功,因此,它對計(jì)算機(jī)系統(tǒng)的軟、硬件要求都不高,目前運(yùn)行Windows的計(jì)算機(jī)系統(tǒng)都可以滿足安裝VB 6.0的軟件和硬件需求,完全安裝企業(yè)版時(shí)其具體的軟、硬件
8、要求如下:(1)操作系統(tǒng)要求是Windows 95或更新版本,Windows NT 4.0或更高版本。(2)Microsoft Internet Explorer 4.01或更新版本。(3)硬件要求CPU是486DX/66MHz以上的處理器(推薦使用Pentium或更高的處理器),大于147MB的硬盤空間,32MB以上內(nèi)存,一個(gè)CDROM驅(qū)動(dòng)器,VGA以上分辯率的顯示器。安裝學(xué)習(xí)版時(shí)比安裝專業(yè)版所需資源低,即使安裝需要資源最大的企業(yè)版,現(xiàn)在運(yùn)行Windows的計(jì)算機(jī)系統(tǒng)都已遠(yuǎn)遠(yuǎn)超過了它的基本要求。1.2 VB的安裝與啟動(dòng)安裝Visual Basic6.0可以直接從光盤安裝,也可以把光盤文件復(fù)制
9、到硬盤之后再安裝。只要運(yùn)行安裝程序并選擇要安裝的部件和位置,安裝程序就會(huì)按要求把VB安裝到硬盤并為其配置工作環(huán)境。安裝VB的步驟如下:(1)將VB6.0安裝光盤插入CD-ROM驅(qū)動(dòng)器中。(2)運(yùn)行安裝程序。如果光盤驅(qū)動(dòng)器的“自動(dòng)運(yùn)行”功能是打開的(默認(rèn)都是打開的),則插入光盤后,安裝程序會(huì)自動(dòng)執(zhí)行;否則,就需要運(yùn)行光盤根目錄下的“Setup.exe”程序。若是復(fù)制到硬盤上再安裝,則必須運(yùn)行復(fù)制目錄下的“Setup.exe”程序。(3)按照屏幕上的安裝提示完成安裝過程。VB安裝結(jié)束并重新啟動(dòng)系統(tǒng)后,就可以像運(yùn)行其他應(yīng)用程序那樣啟動(dòng)VB6.0。方法有兩種:2使用資源管理器或文件瀏覽器啟動(dòng)VB(1)
10、在安裝VB6.0的磁盤目錄下尋找可執(zhí)行文件VB6.EXE。(2)單擊VB6.EXE或它的圖標(biāo)。1用“開始”菜單啟動(dòng)VB(1)單擊任務(wù)欄上的“開始”按鈕。(2)選擇“程序”,接著選取“Microsoft Visual Basic 6.0中文版”。(3)在“Microsoft Visual Basic 6.0中文版”子菜單中單擊“Visual Basic 6.0中文版”。1.3 VB 6.0的集成開發(fā)環(huán)境1.3.1 VB集成開發(fā)環(huán)境介紹啟動(dòng)Visual Basic 6.0后,首先打開“新建工程”對話框。該對話框有三個(gè)選項(xiàng)卡。“新建”選項(xiàng)卡用于建立新的工程,“現(xiàn)存”選項(xiàng)卡用來選擇和打開現(xiàn)有工程,“最
11、新”選項(xiàng)卡列出了最近使用過的工程?!靶陆üこ獭睂υ捒颉靶陆ā边x項(xiàng)卡中列出的工程類型(通常選標(biāo)準(zhǔn)EXE),單擊“打開”按鈕,即可進(jìn)入Visual Basic 6.0應(yīng)用程序集成開發(fā)環(huán)境。默認(rèn)顯示的是主窗口Visual Basic 6.0主窗口從上至下,從左到右依次為標(biāo)題欄、菜單欄、工具欄、工具箱、窗體設(shè)計(jì)器、工程管理器、屬性窗口、窗體布局窗口,在運(yùn)行狀態(tài)和中斷調(diào)試狀態(tài)還有一些窗口,將在以后介紹。Visual Basic 6.0主窗口各元素功能介紹如下。1菜單欄位于集成開發(fā)環(huán)境標(biāo)題欄的下方,用于顯示所使用的VB命令。提供了“文件”、“編輯”、“視圖”、“工程”等13項(xiàng)菜單,系統(tǒng)的大部分功能都可以從
12、菜單欄中找到。其中“圖表”和“查詢”是新增菜單。2工具欄工具欄位于菜單欄的下方,它提供了對常用命令的快速訪問。單擊工具欄上的按鈕,則執(zhí)行該按鈕所代表的操作。按系統(tǒng)約定,啟動(dòng)VB后顯示“標(biāo)準(zhǔn)”工具欄。選擇“視圖”菜單中的“工具欄”命令可以把附加的“編輯”、“窗體編輯器”和“調(diào)試工具”移進(jìn)移出,即自定義工具欄。3上下文菜單上下文菜單(又稱快捷菜單)是指在用鼠標(biāo)右鍵單擊(簡稱右擊)一個(gè)窗口時(shí)在鼠標(biāo)指針位置彈出的菜單,它包含經(jīng)常執(zhí)行的操作快捷鍵。上下文菜單中顯示出的菜單命令取決于單擊鼠標(biāo)右鍵所在的窗口。例如,在“工具箱”上單擊鼠標(biāo)右鍵時(shí)顯示的上下文菜單中可以選擇顯示“部件”對話框、隱含“工具箱”、設(shè)置
13、“工具箱”的可連接特性或在“工具箱”中添加自定義選項(xiàng)卡等。4可連接的窗口出現(xiàn)在VB集成開發(fā)環(huán)境中的窗口像Windows系統(tǒng)的其他窗口一樣可以用按下鼠標(biāo)左鍵不松開,并移動(dòng)鼠標(biāo)的方式把它拖動(dòng)到另一個(gè)位置。VB集成開發(fā)環(huán)境中的某些窗口在被拖動(dòng)時(shí)有一些特殊表現(xiàn):這些窗口可以??吭诩砷_發(fā)環(huán)境的主窗口的邊緣但不能被拖出主窗口之外;可以與其他窗口連接在一起而避免它們相互重疊,這種窗口就叫做可連接的窗口。只有可連接的窗口之間才可以互相連接在一起。當(dāng)拖動(dòng)一個(gè)可連接的窗口到主窗口的邊緣或靠近另一個(gè)可連接的窗口時(shí),它會(huì)“一下抓住”那個(gè)地方并自動(dòng)調(diào)整它的大小,使它的寬度或高度與主窗口或其他可連接窗口的寬度或高度相一
14、致,并附著在主窗口的邊緣或與其他可連接窗口連接在一起。可連接窗口還有一個(gè)特點(diǎn)就是它始終處于最頂層,即使失去輸入焦點(diǎn)(窗口的標(biāo)題欄變暗)時(shí),它也處于有輸入焦點(diǎn)的窗口的上面。在可連接窗口的快捷菜單中有一項(xiàng)“可連接的(K)”,它用于關(guān)閉或打開窗口的可連接特性。單擊這一選項(xiàng)可使它前面出現(xiàn)或隱藏一個(gè)“”,當(dāng)出現(xiàn)符號“”時(shí),窗口就是可連接的。查看代碼:打開當(dāng)前所選文件的代碼窗口。查看對象:顯示所選對象的窗體。切換文件夾:改變工程管理器中文件列表的顯示方式。集成開發(fā)環(huán)境中的可連接窗口包括:工程資源管理器、工具箱、屬性窗口、窗體布局窗口、調(diào)色板、對象瀏覽器、立即窗口、本地窗口和監(jiān)視窗口等。(1)工程資源管理器
15、工程是指所創(chuàng)建的應(yīng)用程序的文件的集合。工程資源管理器用來管理當(dāng)前工程中包含的各類文件,其顯示各類文件的方式與Windows資源管理器顯示文件夾的方式相仿。工程文件的擴(kuò)展名是vbp。在VB中能建立多種類型的工程,其中最常用的是標(biāo)準(zhǔn)EXE類型的工程,可用于創(chuàng)建一個(gè)標(biāo)準(zhǔn)的可執(zhí)行文件。工程資源管理器上方的三個(gè)按鈕分別是“查看代碼”、“查看對象”和“切換文件夾”,作用如下:在VB中要設(shè)計(jì)一個(gè)應(yīng)用程序就要?jiǎng)?chuàng)建一個(gè)工程,如果同時(shí)設(shè)計(jì)多個(gè)應(yīng)用程序,可以創(chuàng)建一個(gè)包含多個(gè)工程的工程組。單擊“視圖”菜單中的“工程資源管理器”命令或工具欄上的按鈕 或按Ctrl+R組合鍵,可以把工程資源管理器的窗口顯示在集成開發(fā)環(huán)境中
16、。(2)工具箱與工具欄不同,工具箱中提供的是一組可以添加到程序窗體上的應(yīng)用程序組件,稱為圖形對象或控件,在設(shè)計(jì)窗體時(shí)可以把工具箱上的控件直接添加到窗體上。VB6.0的工具箱中僅提供一些基本的控件,稱之為標(biāo)準(zhǔn)控件,用戶創(chuàng)建或打開的工程的類型不同,工具箱中將顯示不同的控件;用戶也可以根據(jù)需要向工具箱中添加其他的控件(如ActiveX控件或或插入對象)。單擊“視圖”菜單中的“工具箱”命令或標(biāo)準(zhǔn)工具欄中的按鈕 ,可以在集成開發(fā)環(huán)境中關(guān)閉或顯示工具箱界面。(3)屬性窗口該窗口列出了對選定窗體和控件的屬性設(shè)置值。屬性是指對象的特征,如標(biāo)題、字體、字號和顏色等??梢浴鞍醋帜感颉被颉鞍捶诸愋颉憋@示對象屬性???/p>
17、以在屬性窗口中修改已顯示的屬性值?!皩傩浴贝翱诘撞康淖⑨寘^(qū)顯示所選屬性的說明。單擊“視圖”菜單中的“屬性窗口”命令或工具欄上的按鈕 或按F4鍵,就可把屬性窗口顯示在集成開發(fā)環(huán)境中。(4)窗體布局窗口用表示屏幕的小圖像來布置應(yīng)用程序中各窗體的位置,可用鼠標(biāo)直接拖動(dòng)Form小圖像來安排窗體在程序運(yùn)行時(shí)的位置。單擊“視圖”菜單的“窗體布局窗口”命令,或工具欄上的按鈕 可以顯示窗體布局窗口。(5)調(diào)色板使用調(diào)色板可以直觀地定義窗體和其他一些可視控件的背景和文本的顏色。單擊“視圖”菜單中的“調(diào)色板”命令,可以把調(diào)色板窗口顯示在集成開發(fā)環(huán)境中。(6)對象瀏覽器對象瀏覽器是一個(gè)列出當(dāng)前工程中所有使用對象的窗
18、口,通過它可以查看到每一個(gè)對象及對象的每一屬性、方法和事件;還可以查找每一個(gè)編程元素,并可在編碼中快速地漫游。雙擊瀏覽器中列出的一個(gè)元素就可以把包含這一元素的編輯窗口顯示出來,或者在“查找”按鈕 前的列表框中輸入要查找的名稱,然后單擊查找按鈕也可以把相關(guān)信息列出來。單擊“視圖”菜單中的“對象瀏覽器”命令或工具欄中的按鈕 或按下F2鍵可以把對象瀏覽器窗口顯示在集成開發(fā)環(huán)境中。(7)立即窗口、監(jiān)視窗口和本地窗口這三個(gè)窗口用于調(diào)試程序,它們只在IDE中運(yùn)行應(yīng)用程序時(shí)才有效。將在第4章中詳細(xì)介紹。5其他窗口(1)窗體編輯器一個(gè)窗體對象就是程序在運(yùn)行時(shí)要顯示的一個(gè)窗口,使用窗體編輯器可以用可視化的方法直
19、觀地設(shè)計(jì)窗體及其包含的可視控件的外觀、初始顯示位置和其他屬性等。當(dāng)鼠標(biāo)指針在工程資源管理器中指向一個(gè)窗體對象時(shí)單擊鼠標(biāo)右鍵,從彈出的快捷菜單中單擊“查看對象”,就可以把這個(gè)窗體的編輯器顯示在集成開發(fā)環(huán)境中,或者在工程資源管理器中直接雙擊一個(gè)窗體對象也可以把它的編輯器顯示出來。(2)代碼窗口代碼窗口也稱代碼編輯器,它是輸入應(yīng)用程序代碼的編輯窗口,應(yīng)用程序的第個(gè)窗體對象或模塊都有一個(gè)單獨(dú)的代碼編輯器窗口。1.3.2 對象與類1對象與對象屬性VB是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,這里所說的對象是什么呢?對象就是程序代碼和數(shù)據(jù)的組合,可以做為一個(gè)整體來處理。VB中的窗體及添加到窗體中的控件統(tǒng)稱為對象。另外還有
20、一些對象,如Debug和Err對象、App對象、Printer、Screen和ClipBoard對象等,這些都是系統(tǒng)已經(jīng)預(yù)定義好的,將在以后介紹。還有一類對象是由用戶建立的,也會(huì)在以后學(xué)習(xí)。每一個(gè)對象都需要有一組屬性來描述其特征,如大小、位置和色彩等。設(shè)置和修改對象屬性值有三種方式,但必須先選擇要設(shè)置屬性的對象,然后激活屬性窗口進(jìn)行設(shè)置;也可以通過下拉列表選擇所需要的屬性值;還可以在程序代碼中進(jìn)行設(shè)置。但對象也有些特征用戶是不知道的,如封裝和隱藏,就如同我們所使用的電腦,一般用戶是不必知道其內(nèi)部結(jié)構(gòu)和工作機(jī)制的。2對象的事件和事件過程事件(Event)是VB預(yù)先設(shè)置好的、能夠被對象識(shí)別和響應(yīng)的
21、動(dòng)作。VB中的事件分為系統(tǒng)事件和用戶事件兩類。系統(tǒng)事件由系統(tǒng)觸發(fā),如Load(裝入)事件;而用戶事件則由用戶觸發(fā),如單擊鼠標(biāo)(觸發(fā)Click事件)或者在鍵盤上按一下鍵(觸發(fā)Change事件)。當(dāng)對象上發(fā)生某一事件后,對象對該事件的反應(yīng)是通過一段程序代碼來實(shí)現(xiàn)的,這樣的一段程序代碼稱為事件過程(Event Procedure)。在VB中編寫的程序就是針對具體事件的,當(dāng)一個(gè)對象有多個(gè)可能發(fā)生的事件時(shí),一定要分清某一事件和與之對應(yīng)的事件過程。所有的程序代碼都是在代碼窗口中編寫的。實(shí)際上,VB為所有的事件過程都準(zhǔn)備了相應(yīng)的模板,在模塊代碼窗口的“對象”下拉列表中選擇某一對象,再在“過程”下拉列表選擇該
22、對象需響應(yīng)的事件后,代碼窗口即出現(xiàn)該事件過程的過程頭和過程尾,程序員只要在其中輸入事件過程代碼即可。3對象的方法方法實(shí)際上是VB提供的內(nèi)置于對象的特殊子程序,用于讓對象完成一定的操作或執(zhí)行相應(yīng)的動(dòng)作。一個(gè)對象可以有多個(gè)方法,每一個(gè)方法代表著對象為用戶提供了一種功能,用戶通過調(diào)用對象的不同方法完成不同的功能。如窗體和Hide和Show方法可以用來隱藏或顯示窗體。VB的方法通過程序代碼調(diào)用,格式為:對象名稱.方法名稱例如:Debug.Print 你好!運(yùn)行時(shí),將會(huì)在“立即”窗口中顯示字符串“你好!”。這里Debug對象表示“立即”窗口,用于調(diào)試程序。如果調(diào)用方法時(shí)省略了“對象名稱”,那么所調(diào)用的方
23、法作為當(dāng)前對象的方法。通常把當(dāng)前窗體作為當(dāng)前對象,所以前面的例子若改為:Print 你好!則運(yùn)行時(shí)將在當(dāng)前窗體上顯示字符串“你好!”。4類類是對象的模型,規(guī)定了對象的公共特征和功能。如Word中的模板就屬于類,用某一模板建立的所有文檔(對象)都具有模板所規(guī)定的基本屬性。VB的工具箱中的控件代表的都是類(控件類),實(shí)際上是“空”對象。當(dāng)用戶在窗體上畫出具體的控件時(shí),這個(gè)具體的控件就是類的實(shí)例,成為可以被應(yīng)用程序引用的控件對象。類可以生成多個(gè)不同的對象,再用這些對象去構(gòu)造應(yīng)用程序,這就是面向?qū)ο蟪绦蛟O(shè)計(jì)的根本思路。當(dāng)一個(gè)類經(jīng)過調(diào)試確認(rèn)無誤后,用它產(chǎn)生的對象來完成相應(yīng)的工作可以提高工作效率而又不至于
24、產(chǎn)生大量的錯(cuò)誤。這是面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)秀之處。1.3.3 模塊和過程1模塊模塊是把工程資源保存到磁盤上的最小單位,保存工程后一個(gè)模塊就是一個(gè)文件。VB中的模塊有三類,即窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。窗體模塊是VB中以frm為擴(kuò)展名的文件,是大多數(shù)VB應(yīng)用程序的基本模塊。瀏覽和編輯窗體模塊要在兩個(gè)窗口中進(jìn)行,在窗體編輯器中瀏覽和編輯窗體及其包含的控件的可視外觀和其他屬性;在代碼窗口中瀏覽和編輯窗體的過程及變量的聲明。標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為bas)中通常包含一些可供其他模塊共用的變量和過程。類模塊是VB工程中以cls為擴(kuò)展名的文件。在類模塊中可以定義類及類的屬性、方法和事件。類是面向?qū)ο蟮某绦?/p>
25、設(shè)計(jì)的基礎(chǔ)。2過程過程就是由程序語句組成的程序段,為該程序段命名一個(gè)名字,在程序運(yùn)行過程中作為一個(gè)單元來執(zhí)行。一個(gè)過程有起始標(biāo)志和結(jié)束標(biāo)志,在起始標(biāo)志中規(guī)定過程的名稱。過程分為有返回值的過程(稱為函數(shù))、無返回值的過程(簡稱為過程)和響應(yīng)事件的過程(稱事件過程)3種。對象的方法實(shí)質(zhì)上就是實(shí)現(xiàn)對象功能的過程或函數(shù)。另外,在對象中還有專門用于設(shè)置和捕獲對象屬性值的過程,稱為屬性過程。1.4 VB應(yīng)用程序的開發(fā)步驟VB應(yīng)用程序的開發(fā)一般按如下步驟進(jìn)行:建立工程設(shè)立應(yīng)用程序界面設(shè)置對象屬性編寫程序代碼保存程序運(yùn)行調(diào)試程序生成可執(zhí)行文件。例1.1 編制一個(gè)應(yīng)用程序,運(yùn)行時(shí)將顯示一個(gè)窗體,其中有“白色窗體
26、”、“紅色文本”和“結(jié)束程序”3個(gè)按鈕。要求: (1)窗體裝入時(shí),通過標(biāo)簽在窗體上顯示“VB程序設(shè)計(jì)示例”。(2)單擊“白色窗體”按鈕,可將窗體的背景設(shè)置為白色。(3)單擊“紅色文本”按鈕,可將標(biāo)簽中文本的顏色(前景色)設(shè)置為紅色。(4)單擊“結(jié)束程序”按鈕,則結(jié)束程序的運(yùn)行。程序設(shè)計(jì)示例1建立工程啟動(dòng)VB,在出現(xiàn)的“新建工程”對話框中單擊“打開”按鈕,進(jìn)入VB集成開發(fā)環(huán)境。此時(shí),該工程的窗體設(shè)計(jì)器中顯示一個(gè)有待設(shè)計(jì)的空白窗體,其默認(rèn)名稱為Form1。2設(shè)立應(yīng)用程序界面創(chuàng)建一個(gè)新工程后,系統(tǒng)自動(dòng)打開一個(gè)窗體。在此窗體中添加工具箱中的各種控件,如按鈕、文本框和圖片等對象,就可以設(shè)計(jì)出所需的用戶界
27、面。VB則是根據(jù)對象的需要編制相應(yīng)的處理程序,即采用面向?qū)ο蟮姆椒梢暬鼐幹瞥绦?。?dāng)一個(gè)工程中需要多個(gè)窗體時(shí),需要向該工程中添加窗體。本例中需要在窗體上添加一個(gè)標(biāo)簽控件和三個(gè)命令按鈕控件,具體操作如下:(1)單擊工具箱中的控件圖標(biāo) ,然后將鼠標(biāo)指針定位在窗體中的適當(dāng)位置(此時(shí)鼠標(biāo)指針呈十字狀),拖動(dòng)鼠標(biāo),畫出適當(dāng)大小的標(biāo)簽,其默認(rèn)名稱為Label1。(2)單擊工具箱中的控件圖標(biāo) ,在標(biāo)簽控件的下面畫出適當(dāng)大小的命令按鈕,其默認(rèn)名稱為Command1。采用同樣方法畫出另外兩個(gè)命令按鈕,其默認(rèn)名稱分別是Command2和Command3,并用鼠標(biāo)拖動(dòng)將它們調(diào)整到合適的位置。3設(shè)置對象屬性由于不同
28、的對象有不同的屬性值,因此,應(yīng)當(dāng)先選定對象,此時(shí)在標(biāo)題欄的下方的方框中出現(xiàn)所選對象的對象名稱,然后再調(diào)整其屬性值,以免出現(xiàn)差錯(cuò)。修改本例中四個(gè)控件的部分屬性值的具體操作如下:(1)單擊窗體中的標(biāo)簽控件,在其屬性窗口左側(cè)的屬性名稱中單擊“Caption”,刪除右側(cè)的默認(rèn)屬性值“Label1”。或雙擊“Caption”后,按Delete鍵也可刪除默認(rèn)屬性。本例中該屬性值將在程序運(yùn)行階段通過程序代碼中的賦值語句進(jìn)行設(shè)置,格式如下:對象名屬性名稱=屬性值(Label1.Caption=“VB程序設(shè)計(jì)示例”)(2)選中標(biāo)簽控件,在其屬性窗口的屬性名稱中單擊“Font”,此時(shí)右端出現(xiàn)按鈕,單擊該按鈕,出現(xiàn)
29、“字體”對話框,設(shè)置標(biāo)簽的字體為“宋體”,大小為“四號” 設(shè)置標(biāo)簽的Font屬性(3)單擊Command1控件,雙擊其屬性窗口左側(cè)的屬性名稱“Caption”,然后輸入“白色窗體”四字,并按第2步的方式修改其字體字號為楷體、小四。(4)按第3步的方式分別設(shè)置Command2的Caption屬性為“紅色文本”,F(xiàn)ont屬性為楷體、小四;Command3的Caption屬性為“結(jié)束程序”,F(xiàn)ont屬性為楷體、小四。4編寫程序代碼每個(gè)同學(xué)聽到上課鈴聲要上課,聽到熄燈鈴聲要睡覺等,說明每一個(gè)對象(即同學(xué))要根據(jù)不同的事件(上課鈴聲、熄燈鈴聲)執(zhí)行不同的動(dòng)作(執(zhí)行相關(guān)的處理程序)。VB中的事件驅(qū)動(dòng)機(jī)制也
30、是如此,當(dāng)某個(gè)與窗體或控件相關(guān)的事件發(fā)生時(shí),與該事件相關(guān)的程序段就被執(zhí)行。因此,VB編程主要是對各個(gè)對象需要響應(yīng)的事件分別編寫程序段。對象名稱事 件響 應(yīng)Command1Command2Command3Form1單擊(Click)單擊(Click)單擊(Click)裝入(Load)將窗體的背景設(shè)置為白色將窗體中文本的顏色設(shè)置為紅色結(jié)束程序運(yùn)行顯示“VB程序設(shè)計(jì)示例”控件的事件及響應(yīng)需要在代碼窗口中編寫相應(yīng)的程序代碼完成各事件響應(yīng)中提出的要求,具體操作如下:(1)雙擊窗體上的“白色窗體”按鈕,打開代碼窗口,此時(shí)系統(tǒng)已自動(dòng)給出該事件過程的過程頭和過程尾。代碼窗口(2)在過程頭和過程尾之間輸入以下程
31、序代碼:Form1.BackColor=vbWhite該事件過程的含意是:當(dāng)鼠標(biāo)單擊Command1按鈕時(shí),將窗體的背景設(shè)為白色。(3)在代碼窗口的“對象”下拉列表中選擇Command2,“事件過程”列表中默認(rèn)選擇單擊事件Click,代碼窗口中出現(xiàn)相應(yīng)的過程頭和過程尾。接著在該過程頭和過程尾之間輸入以下程序代碼:Label1.ForeColor=vbRed該事件過程的含意是:當(dāng)鼠標(biāo)單擊Command2按鈕時(shí),將標(biāo)簽文本的顏色設(shè)為紅色。(4)在代碼窗口的“對象”下拉列表中選擇Command3,“事件過程”列表中仍默認(rèn)選擇單擊事件Click,在該過程頭和過程尾之間輸入以下程序代碼:該事件過程的含意
32、是:當(dāng)鼠標(biāo)單擊Command3按鈕時(shí),將結(jié)束程序運(yùn)行。(5)在代碼窗口的“對象”下拉列表中選擇Form,“事件過程”列表中默認(rèn)選擇裝入事件Load,在該事件的過程頭和過程尾之間輸入以下程序代碼:EndLabel1.Caption= VB程序設(shè)計(jì)示例 “示例中的事件過程代碼5保存程序VB中的應(yīng)用程序可以用4種類型的文件保存。分別是窗體文件(*.frm)、公用的標(biāo)準(zhǔn)模塊文件(*.bas)、類模塊文件(*.cls)和工程文件(*.vbp)。選擇“文件”菜中的“保存工程”命令或單擊工具欄中的“保存工程”按鈕 ,保存當(dāng)前的工程文件。本例的程序文件名為“SL1”,擴(kuò)展名由系統(tǒng)自動(dòng)添加。6運(yùn)行調(diào)試程序選擇“
33、運(yùn)行”菜單中的“啟動(dòng)”命令或單擊工具欄上的“啟動(dòng)”按鈕,或者按F5鍵,可執(zhí)行當(dāng)前的應(yīng)用程序。如果程序出現(xiàn)錯(cuò)誤或未能實(shí)現(xiàn)要求,則需要進(jìn)行調(diào)試修改,直到正確為止。 7生成可執(zhí)行文件對于調(diào)試好的程序,選擇“文件”菜單下的“生成”命令,可將該程序生成能夠脫離VB集成環(huán)境而在Windows平臺(tái)上獨(dú)立運(yùn)行的可執(zhí)行文件(.exe文件)。8執(zhí)行可執(zhí)行文件退出VB后,在硬盤上找到保存的文件SL1.vbp和SL1.exe,觀察程序啟動(dòng)時(shí)VB是不同時(shí)啟動(dòng)。例1具體介紹了一個(gè)VB應(yīng)用程序的開發(fā)步驟,雖然本例功能簡單,但其開發(fā)的步驟完全適用于其他大型VB程序的開發(fā)過程。第2章 窗體對象及其操作窗體的結(jié)構(gòu)與屬性窗體事件2
34、.1 窗體的結(jié)構(gòu)與屬性窗體結(jié)構(gòu)與Windows下的窗口十分類似,不僅其結(jié)構(gòu)類似,特性也差不多。在程序設(shè)計(jì)階段,我們稱之為窗體,但在程序運(yùn)行后也可以稱為窗口。窗體主要由標(biāo)題欄和窗體區(qū)域兩部分構(gòu)成。標(biāo)題欄上從左至右依次為系統(tǒng)菜單、窗體名稱、最小化按鈕、最大化按鈕和關(guān)閉按鈕。單擊窗體左上角的系統(tǒng)菜單圖標(biāo),將顯示一個(gè)下拉系統(tǒng)命令菜單,若雙擊該圖標(biāo),則將關(guān)閉窗體。單擊最小化按鈕,窗體將縮小至任務(wù)欄上,單擊最大化按鈕,窗體將擴(kuò)大至整個(gè)屏幕,若單擊關(guān)閉按鈕,將關(guān)閉窗體,這些都是窗體的基本屬性。窗體屬性決定了窗體的外觀和操作??梢杂脙煞N方法來設(shè)置窗體屬性:一是通過屬性窗口設(shè)置;另一方法是通過程序代碼設(shè)置。大部
35、分屬性既可以在屬性窗口中設(shè)置,也可以在程序代碼中設(shè)置,而有些屬性只能用程序代碼或?qū)傩源翱谠O(shè)置。通常把只能通過屬性窗口設(shè)置的屬性稱為“只讀屬性”。如窗體名稱就是只讀屬性。系統(tǒng)提供的窗體屬性共有五十項(xiàng)。下面按字母順序列出窗體的常用屬性。這些屬性適用于窗體,同時(shí)也適用于其他對象。(1)AutoRedraw(自動(dòng)重畫)該屬性控制屏幕圖像的重建,主要用于多窗體程序設(shè)計(jì)中。其格式如下:對象.AutoRedraw=Boolean這里的“對象”可以是窗體或圖片框,Boolean的取值為True或False。如果把AutoRedraw屬性設(shè)置為True,則當(dāng)一個(gè)窗體被其他窗體覆蓋、又回到該窗體時(shí),將自動(dòng)刷新或重
36、畫該窗體上的所有圖形。如果把該屬性設(shè)置為False,則必須通過事件過程來設(shè)置這一操作。該屬性的默認(rèn)值為False。方括號中的內(nèi)容可以省略。在這種情況下,將顯示對象當(dāng)前的AutoRedraw屬性值。(2)BackColor(背景顏色)該屬性用來設(shè)置窗體的背景顏色。系統(tǒng)的顏色是由一組用十六進(jìn)制數(shù)值編號的各種色彩的集合,不過,在設(shè)計(jì)程序時(shí)不必用顏色的十六進(jìn)制數(shù)值來設(shè)置背景色,可以通過調(diào)色板來直觀地設(shè)置。只要選擇屬性窗口中的BackColor屬性條,單擊右端的箭頭,將顯示一個(gè)對話框,在該對話框中選擇“調(diào)色板”,即可顯示出圖2-1所示的調(diào)色板,此時(shí)只要單擊調(diào)色板中的某個(gè)色塊,系統(tǒng)就把這種顏色設(shè)置為窗體的
37、背景色。該屬性適用于窗體及大多數(shù)控件,包括復(fù)選框、組合框、命令按鈕、目錄列表框、文件列表框、驅(qū)動(dòng)器列表框、框架、網(wǎng)格、標(biāo)簽、列表框、OLE、單選按鈕、圖片框及文本框等。BackColor調(diào)色板(3)BorderStyle(邊框類型)該屬性用于確定窗體邊框的類型,共有六個(gè)預(yù)定義值。改變BorderStyle的屬性值可以通過雙擊“BorderStyle”,也可以在右側(cè)的下拉菜單中選擇。設(shè) 置 值作 用0-None窗體無邊框1-Fixed Single固定單邊框??梢园刂撇藛慰?、標(biāo)題欄、最大化按鈕和最小化按鈕。其大小只能用最大化按鈕和最小化按鈕改變2-Sizable(默認(rèn)值)可調(diào)整的邊框。窗體大
38、小可變,并有標(biāo)準(zhǔn)的雙線邊界3-Fixed Dialog固定對話框??梢园刂撇藛慰蚝蜆?biāo)題欄,但沒有最大化和最小化按鈕。窗體大小不變(設(shè)計(jì)時(shí)確定),并有標(biāo)準(zhǔn)的雙線邊界4-Fixed ToolWindow固定工具窗口。窗體大小不能改變,只顯示關(guān)閉按鈕,并用縮小的字體顯示標(biāo)題欄5-Sizable ToolWindow可變大小工具窗口。窗體大小可變,只顯示關(guān)閉按鈕,并用縮小的字體顯示標(biāo)題欄窗體邊界在運(yùn)行期間,BorderStyle屬性是“只讀”屬性。也就是說,它只能在設(shè)計(jì)階段設(shè)置,不能在運(yùn)行期間改變。除窗體外,BorderStyle屬性還可用于多種控件,其設(shè)置值也不一樣。(4)Caption(標(biāo)題)
39、該屬性用來定義窗體的標(biāo)題。啟動(dòng)VB或者執(zhí)行“工程”菜單中的“添加窗體”命令后,窗體使用的是默認(rèn)標(biāo)題(如Form1、Form2)。用Caption屬性可以把窗體標(biāo)題改為所需的名字。該屬性既可以通過屬性窗口設(shè)置,也可以在事件過程中通過程序代碼設(shè)置,其格式如下:對象.Caption=字符串這里的“對象”可以是窗體、復(fù)選框、命令按鈕、數(shù)據(jù)控件、框架、標(biāo)簽、菜單及單選按鈕,“字符串”是要設(shè)置的窗體的標(biāo)題。例如:Form1.Caption= Visual Basic Test將把窗體標(biāo)題設(shè)置為“Visual Basic Test”。如果省略“= 字符串”,則返回窗體的當(dāng)前標(biāo)題。(5)ControlBox(
40、控制框)該屬性用來設(shè)置窗口控制框(也稱系統(tǒng)菜單,位于窗口左上角)的狀態(tài)。當(dāng)該屬性被設(shè)置為True(默認(rèn))時(shí),窗口左上角會(huì)顯示一個(gè)控制框。此外,ControlBox屬性還與BorderStyle屬性有關(guān)系。如果把BorderStyle屬性設(shè)置為“0-None”,則ControlBox屬性將不起作用(即使被設(shè)置為True)。ControlBox屬性只適用于窗體。(6)Enabled(允許)該屬性用于激活或者禁止。每個(gè)對象都有一個(gè)Enabled屬性,可以被設(shè)置為True或False,分別用來激活或禁止該對象。對于窗體,該屬性一般設(shè)置為True;但為了鼠標(biāo)或鍵盤事件發(fā)送到某個(gè)窗體,也可以設(shè)置為Fals
41、e。該屬性可以在屬性窗口中設(shè)置,也可以通過程序代碼設(shè)置,其格式如下:這里的“對象”可以是窗體、所有控件及菜單,其設(shè)置可以是True或False。當(dāng)該屬性被設(shè)置成False后,運(yùn)行時(shí)相應(yīng)的對象呈灰色顯示,表明處于不活動(dòng)狀態(tài),用戶不能訪問。在默認(rèn)情況下,窗體的Enabled屬性為True。如果省略“=Boolean值”,則返回“對象”當(dāng)前的Enabled屬性。對象.Enabled=Boolean值(7)字形屬性設(shè)置字形屬性用來設(shè)置輸出字符的各種特性,包括字體、大小等。這些屬性適用于窗體和在部分控件,包括復(fù)選框、組合框、命令按鈕、目錄列表框、文件列表框、驅(qū)動(dòng)器列表框、框架、網(wǎng)格、標(biāo)簽、列表框、單選按
42、鈕、圖片框、文本框及打印機(jī)。字形屬性可以通過屬性窗口設(shè)置,也可以通過程序代碼設(shè)置。(8)ForeColor(前景顏色)該屬性用來定義文本或圖形的前景顏色。其設(shè)置方法和應(yīng)用范圍與BackColor屬性相同。用Print方法輸出的文本均按用ForeColor屬性設(shè)置的顏色輸出。(9)Height、Width(高、寬)這兩個(gè)屬性用來指定窗體的高度和寬度,其單位為twip,即1點(diǎn)的二十分之一(1/1440英寸)。如果不指定高度和寬度,系統(tǒng)默認(rèn)的窗口大小與設(shè)計(jì)時(shí)的窗體大小相同。用程序代碼設(shè)置這兩個(gè)屬性的格式如下:這里的“對象”可以是窗體和各種控件,包括復(fù)選框、組合框、命令按鈕、目錄列表框、文件列表框、驅(qū)
43、動(dòng)器列表框、框架、網(wǎng)格、標(biāo)簽、水平滾動(dòng)條、垂直滾動(dòng)條、圖像框、標(biāo)簽、列表框、OLE、單選按鈕、圖片框、形狀、文本框、屏幕及打印機(jī)?!皵?shù)值”為單精度型,單位為twip。如果省略“=數(shù)值”,則返回“對象”的高度或?qū)挾?。對?Height=數(shù)值對象.Width=數(shù)值(10)Icon(圖標(biāo)屬性)該屬性用來設(shè)置窗體最小化時(shí)的圖標(biāo)。通常把該屬性設(shè)置為.ICO格式的圖標(biāo)文件,當(dāng)窗體最小化(WindowState=1)時(shí)顯示為圖標(biāo)。.ICO文件的位置沒有具體規(guī)定,但通常應(yīng)和其他程序文件放在同一個(gè)目錄下。如果在設(shè)計(jì)階段設(shè)置該屬性,可以從屬性窗口的屬性列表中選擇該屬性,然后單擊設(shè)置框右端的“”,再從顯示的“加載圖
44、標(biāo)”對話框中選擇一個(gè)圖標(biāo)文件。如果用程序代碼設(shè)置該屬性,則需要使用LoadPicture函數(shù)或?qū)⒘硪粋€(gè)窗體圖標(biāo)的屬性賦給該窗體的圖標(biāo)屬性。該屬性只適用于窗體(包括單文檔界面SDI和多文檔界面MDI窗體)。(11)MaxButton、MinButton(最大化按鈕、最小化按鈕)這兩個(gè)屬性用來顯示窗體右上角的最大化、最小化按鈕。如果希望顯示最大化或最小化按鈕,則應(yīng)將兩個(gè)屬性設(shè)置為True,這兩個(gè)屬性只在運(yùn)行期間起作用。在設(shè)計(jì)階段,這兩項(xiàng)設(shè)置不起作用,因此,即使把這兩個(gè)屬性都設(shè)置為False,最大化、最小化按鈕也不會(huì)消失。如果BorderStyle屬性被設(shè)置為“0-None”,則這兩個(gè)屬性將被忽略。
45、這兩個(gè)屬性只適用于窗體。(12)Moveable(窗口移動(dòng))這個(gè)屬性決定了用戶是否可以用拖動(dòng)窗口標(biāo)題欄的方法移動(dòng)窗口。若其值為True,則可以在Windows界面移動(dòng)。(13)Name(名稱)該屬性用來定義對象的名稱。用Name屬性定義的名稱是在程序代碼中使用的對象名,與對象的標(biāo)題(Caption)不是一回事。和BorderStyle屬性一樣,Name是只讀屬性,在運(yùn)行時(shí),對象的名稱不能改變。該屬性適用于窗體、所有控件、菜單及菜單命令。(14)Picture(圖形)其作用是在對象中顯示一個(gè)圖形。在設(shè)計(jì)階段,從屬性窗口中選擇該屬性,并單擊右端的“”,將彈出“加載圖片”對話框,利用該對話框選擇一個(gè)
46、圖形文件,該圖形即可顯示在窗體上。用該屬性可以顯示多種格式的圖形文件,包括.ICO、.BMP、.WMF、.GIF、.JPG和.CUR等。該屬性適用于窗體、圖像框、OLE和圖片框。(15)ShowInTaskbar(運(yùn)行顯示)該屬性將決定一個(gè)窗體對象在程序運(yùn)行時(shí)的窗口是否顯示在Windows的任務(wù)欄中。若它的值為True,則顯示在任務(wù)欄中。該屬性只能在設(shè)計(jì)階段設(shè)置,在運(yùn)行狀態(tài)是只讀的。 (16)Top、Left(頂邊、左邊位置)這兩個(gè)屬性用來設(shè)置對象的頂邊和左邊的坐標(biāo)值,用以控制對象的位置。坐標(biāo)值的默認(rèn)單位為twip。當(dāng)用程序代碼設(shè)置時(shí),其格式如下:這里的“對象”可以是窗體和絕大多數(shù)控件。當(dāng)“對
47、象”為窗體時(shí),Left指的是窗體的左邊界與屏幕左邊界的相對距離,Top指的是窗體的頂邊與屏幕頂邊的相對距離;而當(dāng)“對象”為控件時(shí),Left和Top分別指控件的左邊和頂邊與窗體的左邊和頂邊的相對距離。(17)Visible(可見性)該屬性用來設(shè)置對象的可見性。如果將該屬性設(shè)置為False,則將隱藏對象;如果設(shè)置為True,則對象可見。當(dāng)用程序代碼設(shè)置時(shí),格式如下:這里的“對象”可以是窗體和任何控件(計(jì)時(shí)器除外),其設(shè)置值為True或False。在默認(rèn)情況下,Visible屬性的值為True。對象.Top=Y對象.Left=X對象.Visible=Boolean值(18)WindowState(窗
48、口狀態(tài))用來設(shè)置窗體的操作狀態(tài),可以用屬性窗口設(shè)置,也可以用程序代碼設(shè)置,格式如下:這里的“對象”只能是窗體,“設(shè)置值”是一個(gè)整數(shù),取值為0、1、2,代表的操作狀態(tài)分別為:“正常狀態(tài)”也稱“標(biāo)準(zhǔn)狀態(tài)”,即窗體不縮小為一個(gè)圖標(biāo),一般也不充滿整個(gè)屏幕,其大小以設(shè)計(jì)階段所設(shè)計(jì)的窗體為基準(zhǔn)。但是,程序運(yùn)行后,窗體的實(shí)際大小取決于Width和Height屬性的值,同時(shí)可用鼠標(biāo)改變其大小。對象的BackColor、ForeColor和Caption三種屬性的設(shè)置已在例1.1中介紹過了,其他屬性的設(shè)置也與此相同。再舉幾個(gè)例子如下:上述的兩個(gè)示例中都有對象的名字,若省略了對象名字,則默認(rèn)為設(shè)置當(dāng)前對象的相應(yīng)屬
49、性。對象.WindowState=設(shè)置值 0正常狀態(tài),有窗口邊界;1最小化狀態(tài),顯示一個(gè)示意圖標(biāo);2最大化狀態(tài),無邊界,充滿整個(gè)屏幕。Form1.Width=7000把Form1窗體的寬度設(shè)置為7000Form1.FontName = 隸書設(shè)置字體名稱2.2 窗體事件與窗體相關(guān)的事件有三十余項(xiàng),其中常用的有以下幾個(gè)。1Click(單擊)事件Click事件通常指單擊鼠標(biāo)左鍵時(shí)發(fā)生的事件。程序運(yùn)行后,當(dāng)單擊窗口內(nèi)某個(gè)位置時(shí),VB將調(diào)用窗體事件過程Form1_Click。注意,單擊的位置必須沒有其他對象(控件),如果單擊窗體內(nèi)的控件,則只能調(diào)用相應(yīng)控件的Click事件過程,不能調(diào)用Form1_Cli
50、ck過程。還需要說明的是,對于不同的控件,產(chǎn)生Click事件的時(shí)機(jī)可能稍有不同,例如,當(dāng)一個(gè)命令按鈕有輸入焦點(diǎn)時(shí)用戶按下空格鍵也會(huì)產(chǎn)生命令按鈕的Click事件;有些控件在單擊鼠標(biāo)右鍵不產(chǎn)生Click事件,而有些卻產(chǎn)生。但無論如何,單擊一個(gè)控件或按下控件的訪問鍵時(shí)肯定會(huì)產(chǎn)生這個(gè)對象的Click事件。2DblClick(雙擊)事件程序運(yùn)行時(shí),雙擊窗體內(nèi)的某個(gè)位置,VB將調(diào)用窗體事件過程Form_ DblClick?!半p擊”實(shí)際觸發(fā)兩個(gè)事件,第一次按鼠標(biāo)鍵產(chǎn)生Click事件,第二次產(chǎn)生DblClick事件。3Load(裝入)事件Load事件可以用來在啟動(dòng)程序時(shí)對屬性和變量進(jìn)行初始化。因?yàn)樵谘b入窗體后
51、,如果運(yùn)行程序,將自動(dòng)觸發(fā)該事件。Load是把窗體裝入工作區(qū)的事件,如果這個(gè)過程存在,接著就執(zhí)行它。Form_ Load過程執(zhí)行完后,如果窗體模塊中還存在其他事件過程,VB將暫停程序的執(zhí)行,并等待觸發(fā)下一個(gè)事件過程。如果Form_ Load事件過程內(nèi)不存在任何指令,VB將顯示該窗體。4UnLoad(卸載)事件當(dāng)從內(nèi)存中清除一個(gè)窗體(關(guān)閉窗體或執(zhí)行UnLoad語句)時(shí)觸發(fā)該事件。如果重新裝入該窗體,則窗體中所有的控件都要重新初始化。5Activate(活動(dòng))事件當(dāng)窗體變?yōu)榛顒?dòng)窗口時(shí)觸發(fā)該窗體的Activate事件(假定該窗體名稱為Form1),而在另一個(gè)窗體變?yōu)榛顒?dòng)窗口前觸發(fā)Form1窗體對象的
52、Deactive事件。通過操作可把窗體變?yōu)榛顒?dòng)窗體,例如單擊窗體或在程序中執(zhí)行Show方法等。6Paint(繪畫)事件當(dāng)窗體被放大或者窗口被其他窗體覆蓋時(shí),觸發(fā)該事件。下面通過兩個(gè)示例,使讀者加深對對窗體事件的操作和其他控件的屬性設(shè)置的印象。例2.1 統(tǒng)計(jì)并輸出單擊窗體的次數(shù)。Private Sub Form_Click() Static Intcs As Integer聲明局部靜態(tài)變量Intcs Intcs=intcs+1Intcs累加單擊次數(shù) Print Intcs輸出Intcs中的值End Sub在運(yùn)行該應(yīng)用程序時(shí),會(huì)在窗體上輸出鼠標(biāo)單擊窗體的次數(shù),下圖所示是單擊窗體三次后的顯示結(jié)果。窗
53、體事件運(yùn)行結(jié)果“加法計(jì)算程序”初始界面啟動(dòng)VB6.0后,首先建立一個(gè)標(biāo)準(zhǔn)工程,然后進(jìn)行如下操作:(1)設(shè)計(jì)窗體:在窗體上畫出4個(gè)標(biāo)簽控件,3個(gè)文本框控件和3個(gè)按鈕控件,然后按下表所示設(shè)置各控件的屬性值??丶傩詫傩灾悼丶傩詫傩灾礚abel1CaptionFontForeColor加法計(jì)算程序楷體、二號紅色Text2TextFontEnabled空宋體、三號FalseLabel2CaptionFontForeColor第一加數(shù)宋體、三號藍(lán)色Text3TextFontEnabled空宋體、三號trueLabel3CaptionFontForeColor第二加數(shù)宋體、三號藍(lán)色Command1Cap
54、tionFontEnabled輸入宋體、三號TrueLabel4CaptionFontForeColor結(jié) 果宋體、三號粉紅色Command2CaptionFontEnabled計(jì)算宋體、三號FalseText1TextFontEnabled空宋體、三號FalseCommand3CaptionFontEnabled退出宋體、三號False控件部分屬性設(shè)置表(2)依次雙擊窗體上的“輸入”、“退出”按鈕,在打開的代碼窗口中輸入右圖所示的程序代碼。(3)選擇“文件”菜單中的“保存工程”或單擊工具欄上的“保存工程”按鈕保存當(dāng)前程序。程序代碼窗口(4)運(yùn)行并調(diào)試程序。當(dāng)單擊工具欄上的“運(yùn)行”按鈕或按下F
55、5鍵時(shí),程序開始運(yùn)行,此時(shí)單擊程序窗體上的“輸入”按鈕,系統(tǒng)執(zhí)行Command1_Click()中的程序代碼,彈出一個(gè)輸入數(shù)據(jù)對話框。輸入數(shù)據(jù)對話框輸入第一加數(shù)并單擊“確定”或按回車鍵后,再次彈出該對話框,輸入第二加數(shù)并“確定”或按回車鍵后,程序中將把“輸入”和“退出”按鈕設(shè)置為不可用狀態(tài),而將“計(jì)算”按鈕設(shè)置為可用狀態(tài)。單擊“計(jì)算”按鈕,系統(tǒng)將執(zhí)行Command2_Click()中的程序代碼,計(jì)算機(jī)會(huì)將輸入的兩個(gè)文本型數(shù)據(jù)轉(zhuǎn)換成數(shù)值型數(shù)據(jù),并計(jì)算出它們的和值,然后將和值賦值給變量C。再將C的值賦值給第三個(gè)文本框顯示到窗體中。一次加法計(jì)算就完成了。同時(shí)程序中將“輸入”和“退出”按鈕設(shè)置為可用狀
56、態(tài),而把“計(jì)算”按鈕設(shè)置為不可用狀態(tài)。(5)如果再次單擊“輸入”按鈕,將重復(fù)上一步的操作。(6)當(dāng)單擊“退出”按鈕時(shí),系統(tǒng)將執(zhí)行Command3_Click()中的程序代碼,即結(jié)束程序的運(yùn)行。第3章 常量、變量與數(shù)據(jù)類型VB中的數(shù)據(jù)類型常量和變量VB中語句的書寫規(guī)則3.1 VB中的數(shù)據(jù)類型數(shù)據(jù)類型決定了計(jì)算機(jī)對數(shù)據(jù)的存儲(chǔ)方式、處理方式和運(yùn)算方式,各種程序設(shè)計(jì)語言中都規(guī)定了基本的數(shù)據(jù)類型。3.1.1 VB中的基本數(shù)據(jù)類型VB中提供的基本數(shù)據(jù)類型如下表所示。關(guān)鍵字類型長度數(shù)據(jù)范圍Byte字節(jié)型1個(gè)字節(jié)0255Boolean邏輯型2個(gè)字節(jié)True或FalseInteger整型2個(gè)字節(jié)-3276832
57、767Long長整型4個(gè)字節(jié)-21474836482147483647Single單精度浮點(diǎn)型4個(gè)字節(jié)絕對值在1.40129810-453.40282310-38之間object對象型4個(gè)字節(jié)任何object引用Double雙精度浮點(diǎn)型8個(gè)字節(jié)絕對值在4.9406564584124710-3241.7976931348623210-308之間Currency貨幣型8個(gè)字節(jié)-922337203685477.5808922337203685477.5807Date日期型8個(gè)字節(jié)100年1月1日9999年12月31日String字符串型字符數(shù)2可存儲(chǔ)字符串的長度取決于變量類型VB中的基本數(shù)據(jù)類型1數(shù)
58、值型數(shù)值型數(shù)據(jù)包括字節(jié)型、整型、長整型、浮點(diǎn)型和貨幣型。字節(jié)型、整型和長整型數(shù)據(jù)均用于表示整數(shù),差別在于它們表示的數(shù)的范圍不同。字節(jié)型數(shù)據(jù)是無符號數(shù),只能表示正整數(shù)。單精度浮點(diǎn)型和雙精度浮點(diǎn)型數(shù)據(jù)可以表示實(shí)數(shù),差別也是它們表示的數(shù)的范圍不同。一個(gè)實(shí)數(shù)常數(shù)可以用習(xí)慣的數(shù)字符號和小數(shù)點(diǎn)表示,也可以用科學(xué)計(jì)數(shù)法的形式表示。由于在VB程序設(shè)計(jì)語言中不能輸入上標(biāo),所以用nEm的形式表示n10m,其中n和m各代表一個(gè)實(shí)數(shù),兩個(gè)數(shù)必須同時(shí)存在。如1.235E-6就表示1.23510-6 。貨幣型數(shù)據(jù)主要用于銀行、會(huì)計(jì)行業(yè)中表示現(xiàn)金數(shù)額的數(shù)據(jù)。它有足夠的整數(shù)位和小數(shù)位,可以克服長整型數(shù)據(jù)中沒有小數(shù)、浮點(diǎn)型數(shù)據(jù)
59、計(jì)算誤差太大的缺點(diǎn)。2字符型字符串型數(shù)據(jù)適合表示文本性質(zhì)的數(shù)據(jù)。它可以是英文,也可以是中文,如一個(gè)單詞,一句話或一個(gè)人的名字等,但VB中要求,字符串?dāng)?shù)據(jù)應(yīng)當(dāng)在其前后加上英文輸入狀態(tài)的雙引號。例如,要表示字符串ABCD,就要寫在ABCD;當(dāng)字符串中有英文中的雙引號時(shí),如ABCD,要寫成ABCD;而中文的雙引號被會(huì)系統(tǒng)當(dāng)作一個(gè)漢字使用。3邏輯型邏輯型數(shù)據(jù)又稱布爾型數(shù)據(jù),它只有兩個(gè)邏輯值,即“True”和“False”。4日期型日期型的數(shù)據(jù)適合表示日期和時(shí)間類型的數(shù)據(jù)。常用的日期數(shù)據(jù)表示方式為“#月/日/年#”(各占兩位,即#mm/dd/yy#),時(shí)間數(shù)據(jù)表示則為“#時(shí):分:秒#”(各占兩位,#hh
60、:mm:ss#),一定要注意,在用日期型數(shù)據(jù)時(shí),不能省略“#”符號。5對象型對象型數(shù)據(jù)表示一個(gè)對象,因?yàn)閷ο笾挥性诔绦蛑杏妙惿梢粋€(gè)對象實(shí)例后,才可得到表示對象的數(shù)據(jù),所以對象數(shù)據(jù)是沒有常數(shù)的。但VB中還是為對象型數(shù)據(jù)準(zhǔn)備了一個(gè)常數(shù)Nothing,它是一個(gè)不表示任何對象的對象常數(shù)。3.1.2 自定義數(shù)據(jù)類型當(dāng)需要用幾個(gè)不同基本數(shù)據(jù)類型來描述一批事物中的每一件事物的特性時(shí),使用自定義類型的數(shù)據(jù)將是很方便的。例如,建立一個(gè)通訊錄,每個(gè)人的信息中需要有姓名、出生年月、家庭地址、郵政編碼、電話號碼甚至QQ號碼等,這時(shí)用一個(gè)自定義類型的變量就可以同時(shí)表示一個(gè)人的若干方面的信息。自定義類型格式如下:其中方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地方授權(quán)銷售合同模板
- 個(gè)人安裝門窗合同范例
- 關(guān)于杯子購銷合同范例
- 合作付款合同范例
- 制氧機(jī)驗(yàn)收合同范例
- 中餐餐飲供貨合同模板
- 臨沂大學(xué)《制藥過程自動(dòng)化與儀表》2021-2022學(xué)年第一學(xué)期期末試卷
- 人工智能語音識(shí)別技術(shù)應(yīng)用開發(fā)合同
- 產(chǎn)品外包安全合同模板
- 兼職聘任合同范例
- 人工智能行業(yè)職業(yè)生涯發(fā)展規(guī)劃
- 關(guān)聯(lián)交易培訓(xùn)課件
- 誡子書綜合測試題及答案
- 2024年基金應(yīng)知應(yīng)會(huì)考試試題及答案
- 重慶綠地系統(tǒng)規(guī)劃
- 道口開設(shè)施工方案
- 小升初數(shù)學(xué)銜接講座
- 提高自我保護(hù)意識(shí)主題班會(huì)
- 醫(yī)院門診信息管理系統(tǒng)可行性研究報(bào)告
- 《銀屑病臨床表現(xiàn)》課件
- 智慧后勤系統(tǒng)市場分析報(bào)告
評論
0/150
提交評論