VB基礎教程完整版_第1頁
VB基礎教程完整版_第2頁
VB基礎教程完整版_第3頁
VB基礎教程完整版_第4頁
VB基礎教程完整版_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、vb基礎教程完整版vb基礎教程完整版 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內(nèi)容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內(nèi)容進行仔細校對,但是難免會有疏漏的地方,但是任然希望(vb基礎教程完整版)的內(nèi)容能夠給您的工作和學習帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為vb基礎教程完整版的全部內(nèi)容。計算機等級考試二級vb基礎教程1.1visual basic 概述1.visual basic是什么 visual basic(簡稱vb)是m

2、icrosoft公司開發(fā)的一種通用的基于對象的程序設計語言。 “visual” 指的是開發(fā)圖形用戶界面 (gui) 的方法不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象add到屏幕上的一點即可。 “basic指的是 basic (beginners all-purpose symbolic instruction code) 語言,一種在計算技術發(fā)展歷史上應用得最為廣泛的語言。visual basic 在原有 basic 語言的基礎上進一步發(fā)展,至今包含了數(shù)百條語句、函數(shù)及關鍵詞,其中很多和 windows gui 有直接關系.專業(yè)人員可以用 visual basic 實現(xiàn)

3、其它任何 windows 編程語言的功能,而初學者只要掌握幾個關鍵詞就可以建立實用的應用程序。visual basic scripting edition (vbscript) 是廣泛使用的腳本語言,它是 visual basic 語言的子集,可嵌入html語言中,用于網(wǎng)頁設計,如asp(active server page)文件。vb簡單易學,通用性強,用途廣泛。2。vb的功能 vb可以用于可以開發(fā)多媒體、數(shù)據(jù)庫、網(wǎng)絡、圖形等方面的應用程序.數(shù)據(jù)訪問特性允許對包括 microsoft sql server 和其它企業(yè)數(shù)據(jù)庫在內(nèi)的大部分數(shù)據(jù)庫格式建立數(shù)據(jù)庫和前端應用程序,以及可調(diào)整的服務器端部

4、件。有了 activex(tm) 技術就可使用其它應用程序提供的功能,例如 microsoft word 字處理器,microsoft excel 電子數(shù)據(jù)表及其它 windows 應用程序。internet 能力強大,很容易在應用程序內(nèi)通過 internet 或 intranet訪問文檔和應用程序,或者創(chuàng)建 internet 服務器應用程序。 已完成的應用程序是使用visual basic 虛擬機真正 。exe 文件,可以自由發(fā)布。3。vb的發(fā)展vb是伴隨windows操作系統(tǒng)而發(fā)展的,在中國使用較廣的版本有vb4.0、vb5.0、vb6.0。vb4.0是為配合win95的問世于1995年推

5、出的,既可用于編寫win3.x平臺的16位應用程序也可編寫win95平臺的32位應用程序;vb5。0主要用于編寫win95平臺的32位應用程序,較之vb4.0主要擴展了數(shù)據(jù)庫、activex和internet方面的功能;vb6。0是與win98配合于1998年推出的,進一步加強了數(shù)據(jù)庫、internet和創(chuàng)建控件方面的功能。4.vb中的幾個常用術語工程(project):是指用于創(chuàng)建一個應用程序的文件的集合。對象(object):可控制的某個東西,vb中主要有兩類對象:窗體和控件。窗體(form):應用程序的用戶界面,即windows。控件(control):指的是各種按扭、標簽、文本框等。屬

6、性(property):是指對象的特性,如大小、標題或顏色。activex:activex是基于component object model(com)的可視化控件結(jié)構(gòu)的商標名稱.它是一種封裝技術,提供封裝com組件并將其置入應用程序(如web瀏覽器)的一種方法.components object model (com): 是軟件組件互相通訊的一種方式.它是一種二進制和網(wǎng)絡標準,允許任意兩個組件互相通訊,而不管它們是在什么計算機上運行(只要計算機是相連的),不管各計算機運行的是什么操作系統(tǒng)(只要該操作系統(tǒng)支持 com),也不管該組件是用什么語言編寫的。5。 vb的系統(tǒng)特性(1)工程限制 1)代碼

7、限制: 可被加載到窗體、類或標準模塊的代碼總數(shù)限于 65,534 行。一行代碼限于 1023 個字節(jié).在一行中的實際文本之前最多只能有 256 個空格的前導,在一個邏輯行中最多只能有 25 個續(xù)行符 ( _)。2)過程、類型和變量對每個模塊的過程數(shù)沒有限制。每個過程可包含至多 64k 的代碼.如果過程或模塊超過這一限制,visual basic 便產(chǎn)生編譯時間錯誤。如果遇到這種錯誤,可將特別大的過程分割成若干個較小的過程,或?qū)⒛K級聲明移到另一模塊,來避免此類錯誤發(fā)生.visual basic 用表來保存代碼中的標識符名(變量、過程、常量等)。每個表限于 64k。3)動態(tài)鏈接庫聲明表 每個窗體

8、和代碼模塊使用一個描述動態(tài)鏈接庫入口點的結(jié)構(gòu)的表。每個結(jié)構(gòu)約 40 個字節(jié),表的大小限于 64k,形成每個模塊大約有 1500 個聲明。4)工程名表 整個應用程序用一張包含所有名稱的表。這些名稱包括: 常量名 、 變量名 、 自定義的類型定義名、 模塊名、 dll 過程聲明名。對工程名表總大小沒有限制,但是區(qū)分大小寫的條目不得超過 32k。如果超過了 32k 的限制,可以在不同的模塊中重新使用 private 標識符以限制區(qū)分大小寫的條目數(shù)到達 32k。5)輸入表在不同的模塊中每引用一個標識符,便在輸入表中創(chuàng)建一個條目。每一個這樣的入口最小是 24 字節(jié),但限于 64k,這樣每個模塊大約可以有

9、 2000 個引用。 6)模塊條目表該表中每個模塊最多達 125 個字節(jié),但有 64k 的總限制,這樣每個工程大約可以產(chǎn)生 400 個模塊.vb 中的變量名不多于 255 個字符,而窗體、控件、模塊和類名不多于 40 個字符.(2)工程文件格式vb 在創(chuàng)建和編譯工程時要產(chǎn)生許多文件,分為:設計時文件、雜項開發(fā)文件和運行時文件。設計時文件是工程的建造塊,例如基本模塊 (.bas) 和窗體模塊 (。frm)。雜項文件是由 visual basic 開發(fā)環(huán)境中的各種不同的進程和函數(shù)產(chǎn)生的,例如打包和展開向?qū)膶傥募?(。dep).1.2 vb 6.0 的集成開發(fā)環(huán)境簡介vb 集成開發(fā)環(huán)境 (ide-

10、integrated developing environment ) 由以下元素組成:1. 標題欄用于顯示正在開發(fā)或調(diào)試的工程名和系統(tǒng)的工作狀態(tài)(設計態(tài)、運行態(tài)、中止態(tài))。2. 菜單欄用于顯示所使用的 visual basic 命令。vb6。0標準菜單包括:3. 工具欄在編程環(huán)境下用于快速訪問常用命令.缺省情況下,啟動 vb后顯示“標準”工具欄,附加的編輯、窗體設計和調(diào)試的工具 欄可以從“視圖”菜單上的“工具欄”命令中移進或移出。4. 窗體設計器用來設計應用程序的界面。啟動vb后,窗體設計器中自動出現(xiàn)一個名為form1的空白窗體,可以在該窗體中添加控件、圖形和圖片等來創(chuàng)建所希望的外觀,窗體的

11、外觀設計好后,從菜單中選擇“文件”“保存窗體”在保存對話框中給出合適的文件名(注意擴展名),并選擇所需的保存位置確定。需要再設計另一個窗體時,單擊工具欄上的“添加窗體”按鈕即可。5。 控件(工具)箱由一組控件按鈕組成,用于設計時在窗體中放置控件。除了缺省的工具箱布局之外,還可以通過從上下文菜單中選定“添加選項卡”并在結(jié)果選項卡中添加控件來創(chuàng)建自定義布局。6。 彈出式(上下文)菜單在要使用的對象上單擊鼠標右鍵即可打開快捷菜單,其上會出現(xiàn)與當前對象相關的經(jīng)常執(zhí)行的操作,以加快操作速度。7. 工程管理器窗口用于瀏覽工程中所包含的窗體和模塊,還可以從中查看代碼、查看對象。8。 屬性窗口是vb中一個比較

12、復雜的窗口,其中列出了對選定窗體和控件的屬性設置值。vb中正是通過改變屬性來改變對象的特征,如大小、標題或顏色.9。 對象瀏覽器列出工程中有效的對象,并提供在編碼中漫游的快速方法??梢允褂谩皩ο鬄g覽器”瀏覽在 vb中的對象和其它應用程序,查看對那些對象有效的方法和屬性,并將代碼過程粘貼進自己的應用程序。10。 對象瀏覽器右擊窗體中的對象、從工程管理器中點“查看代碼按鈕。11。 窗體布局窗口 form layout window允許使用表示屏幕的小圖象來布置應用程序中各窗體的位置。12. 立即、本地和監(jiān)視窗口這些附加窗口是為調(diào)試應用程序提供的,它們只在 ide 之中運行應用程序時才有效。1。3

13、面向?qū)ο蟪绦蛟O計的基本概念1?;拘g語(1) 對象和對象類對象是代碼和數(shù)據(jù)的組合,可以作為一個單位來處理。對象可以是應用程序的一部分,比如可以是控件或窗體。整個應用程序也是一個對象。vb中的每個對象都是用類定義的。用餅干模子和餅干之間的關系作比,就會明白對象和它的類之間的關系。餅干模子是類。它確定了每塊餅干的特征,比如大小和形狀。用類創(chuàng)建對象,對象就是餅干。類是面向?qū)ο蟪绦蛟O計的核心技術,可以理解成一種定義了對象行為和外觀的模板;把對象看作是類的原原本本的復制品,類具有繼承性、封裝性、多態(tài)性、抽象性。(2) 屬性屬性是對對象特性的描述,vb為每一類對象都規(guī)定了若干屬性,設計中可以改變具體對象的

14、屬性值。比如窗體的背景顏色、高度與寬度.(3) 事件(event)事件是發(fā)生在對象上的動作。事件的發(fā)生不是隨意的,某些事件僅發(fā)生在某些對象上。 在vb中事件的調(diào)用形式是:private sub對象名_事件名(事件內(nèi)容)end sub(4) 方法(method) 方法指的是控制對象動作行為的方式。它是對象本身內(nèi)含的函數(shù)或過程,它也是一個動作,是一個簡單的不必知道細節(jié)的無法改變的事件,但不稱作事件;同樣,方法也不是隨意的,一些對象有一些特定的方法.在vb里方法的調(diào)用形式是: 對象名。方法名2. 屬性、方法和事件之間的關系vb 對象具有屬性、方法和事件。屬性是描述對象的數(shù)據(jù);方法告訴對象應做的事情;

15、事件是對象所產(chǎn)生的事情,事件發(fā)生時可以編寫代碼進行處理。vb 的窗體和控件是具有自己的屬性、方法和事件的對象??梢园褜傩钥醋饕粋€對象的性質(zhì),把方法看作對象的動作,把事件看作對象的響應.日常生活中的對象,如小孩玩的氣球同樣具有屬性、方法和事件。氣球的屬性包括可以看到的一些性質(zhì),如它的直徑和顏色.其它一些屬性描述氣球的狀態(tài)(充氣的或未充氣的)或不可見的性質(zhì),如它的壽命。通過定義,所有氣球都具有這些屬性;這些屬性也會因氣球的不同而不同。氣球還具有本身所固有的方法和動作。如:充氣方法(用氦氣充滿氣球的動作),放氣方法(排出氣球中的氣體)和上升方法(放手讓氣球飛走)。所有的氣球都具備這些能力。氣球還有預

16、定義的對某些外部事件的響應。例如,氣球?qū)Υ唐扑氖录憫欠艢?,對放手事件的響應是升空。在vb程序設計中,基本的設計機制就是:改變對象的屬性、使用對象的方法、為對象事件編寫事件過程。程序設計時要做的工作就是決定應更改哪些屬性、調(diào)用哪些方法、對哪些事件作出響應,從而得到希望的外觀和行為。3。事件驅(qū)動模型在傳統(tǒng)的或“過程化的應用程序中,應用程序自身控制了執(zhí)行哪一部分代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應用程序中預定的路徑執(zhí)行,必要時調(diào)用過程。 在事件驅(qū)動的應用程序中,代碼不是按照預定的路徑執(zhí)行,而是在響應不同的事件時執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來自操作系統(tǒng)或其

17、它應用程序的消息觸發(fā)、甚至由應用程序本身的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序,因此應用程序每次運行時所經(jīng)過的代碼的路徑都是不同的。因為事件的順序是無法預測的,所以在代碼中必須對執(zhí)行時的“各種狀態(tài)”作一定的假設。當作出某些假設時(例如,假設在運行來處理某一輸入字段的過程之前,該輸入字段必須包含確定的值),應該組織好應用程序的結(jié)構(gòu),以確保該假設始終有效(例如,在輸入字段中有值之前禁止使用啟動該處理過程的命令按鈕)。在執(zhí)行中代碼也可以觸發(fā)事件。例如,在程序中改變文本框中的文本將引發(fā)文本框的 change 事件。如果 change 事件中包含有代碼,則將導致該代碼的執(zhí)行。如果原來假設該事件僅

18、能由用戶的交互操作所觸發(fā),則可能會產(chǎn)生意料之外的結(jié)果.正因為這一原因,所以在設計應用程序時理解事件驅(qū)動模型并牢記在心是非常重要的.4。交互式開發(fā)傳統(tǒng)的應用程序開發(fā)過程可以分為三個明顯的步驟:編碼、編譯和測試代碼。但是 visual basic 與傳統(tǒng)的語言不同,它使用交互式方法開發(fā)應用程序,使三個步驟之間不再有明顯的界限。 vb在編程者輸入代碼時便進行解釋,即時捕獲并突出顯示大多數(shù)語法或拼寫錯誤。看起來就象一位專家在監(jiān)視代碼的輸入。 除即時捕獲錯誤以外,vb 也在輸入代碼時部分地編譯該代碼。當準備運行和測試應用程序時,只需極短時間即可完成編譯。如果編譯器發(fā)現(xiàn)了錯誤,則將錯誤突出顯示于代碼中。這

19、時可以更正錯誤并繼續(xù)編譯,而不需從頭開始. 由于 vb的交互特性,代碼運行的效果可以在開發(fā)時進行測試,而不必等到編譯完成以后。14 利用vb開發(fā)應用程序的一般步驟一個vb程序也稱為一個工程,由窗體、標準模塊、自定義控件及應用所需的環(huán)境設置組成。開發(fā)步驟一般如下:1 創(chuàng)建程序的用戶界面2 設置界面上各個對象的屬性3 編寫對象響應事件的程序代碼4 保存工程5 測試應用程序,排除錯誤6 創(chuàng)建可執(zhí)行程序2。1 vb用戶界面設計基礎1。 概述界面的設計有兩步:先繪制控件,然后確定控件屬性。繪制控件:在工具箱里單擊想畫的控件,在窗體里按下鼠標并拖曳,然后松開鼠標即可。確定屬性:先選中控件,然后按f4鍵或單

20、擊工具欄上的屬性窗口進入屬性(properties)窗口,再在屬性窗口中找到要設置的屬性并進行設置。2。 常用屬性的設置(1)name屬性對象都有名字,計算機把名字看成對象于對象之間的根本差異,因此在同一窗體里不許出現(xiàn)重名的情況(除非這是一個控件數(shù)組),且名字不得超過40個字。在簡單的程序里,給控件命名不是很必要,完全可以使用控件name屬性的缺省值。例如text1。但在有幾十個控件的復雜窗體里,就很難區(qū)分它們。所以,vb推薦由三個小寫字母的前綴和一個第一個字母為大寫的描述性單詞組成的名字。例如cmdmybutton是一個命令按鈕(前綴是cmd)(2)caption屬性caption即標題,是

21、可以在對象外觀上直接看見的文本,可以長達255字符,包括空格和標點符號,比如一個叫cmdok的命令鈕,它的caption屬性就可以是“ok。 注意:并不是所有的對象都有此屬性,比如文本框、圖片框、線條等就沒有。 為按鈕設置熱鍵:在設置caption屬性時,在需要加下劃線的字母前加上 “& 符號,例如 “file”,輸出的就是“file,這樣就可以通過按alt鍵和標題上那個帶下劃線的字母來選取它了, 不必為此編任何代碼。name和 caption的比較:1) name是系統(tǒng)用來識別對象的,編程時需要用它來指代各對象;caption是給用戶看的,提示用戶該對象的作用;2) name可以采用系統(tǒng)默認

22、的名稱,但caption應該根據(jù)實際情況改成意義明了的名詞;3)所有對象都有name,但不一定都有caption; (3)top,left屬性這兩個屬性決定對象的位置。只有兩種情況需要在屬性窗口里設置這兩個屬性:第一種是用戶沒有鼠標,第二種是程序員需要十分精確地設定這兩個值.當選中對象,單擊并拖曳它的時候,便在修改這兩個值了。(4)height,width屬性這兩個屬性決定了對象的大小,當選中控件時,它周圍出現(xiàn)八個小黑方塊,把鼠標指向這些方塊,鼠標指針將變成一個雙向的箭頭,這時按下鼠標并拖曳它,即可改變控件的大小,也就改變了height,width屬性.1。窗體的屬性(1)設置屬性的方法1)在

23、設計態(tài)通過屬性窗口設置 直接在屬性窗口中選擇或輸入既可.2)在程序代碼中改變屬性值 代碼中的格式為: 對象名 . 屬性 = 屬性值 例:form1.backcolor=rgb(255,0,0)2。窗體的常用方法(1)hide方法用以隱藏 mdiform 或 form 對象,但不能使其卸載。語法:object.hide object 所在處代表一個對象表達式,其值為“應用于”列表中的一個對象.如果省略 object,則帶有焦點的窗體就認為是該 object。說明: 隱藏窗體時,它就從屏幕上被刪除,并將其 visible 屬性設置為 false. 用戶將無法訪問隱藏窗體上的控件,但是對于運行中的

24、visual basic 應用程序,或?qū)τ谕ㄟ^ dde 與該應用程序通訊的進程及對于 timer 控件的事件,隱藏窗體的控件仍然是可用的。窗體被隱藏時,用戶只有等到被隱藏窗體的事件過程的全部代碼執(zhí)行完后才能夠與該應用程序交互。如果調(diào)用 hide 方法時窗體還沒有加載,那么 hide 方法將加載該窗體但不顯示它。(2)move方法用以移動 mdiform、form 或控件。語法:object 。 move left, top, width, height說明:只有 left 參數(shù)是必須的.但是,要指定任何其它的參數(shù),必須先指定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù).例如,如果不先指定 left 和 t

25、op 參數(shù),則無法指定 width 參數(shù).任何沒有指定的尾部的參數(shù)則保持不變。(3)print 方法在 immediate 窗口中顯示文本。語法:object 。 print outputlist print 方法的語法具有下列對象限定符和部分:部分描述object必需的。對象表達式,其值為“應用于”列表中的對象。outputlist可選的.要打印的表達式或表達式的列表。如果省略,則打印一空白行。outputlist 參數(shù)具有以下語法和部分:spc(n) tab(n) expression charpos說明:可以用空白或分號來分隔多個表達式.對系統(tǒng)指定的國別設置,用小數(shù)點分隔符將所有打印到

26、immediate 視窗的數(shù)據(jù)正確格式化.關鍵字要用適用于主應用程序的語言輸出。對于 boolean 數(shù)據(jù),或者打印 true 或者打印 false。根據(jù)主機應用程序的地區(qū)設置來翻譯 true 和 false 關鍵字。使用系統(tǒng)能識別的標準短日期格式書寫 date 數(shù)據(jù)。當日期或時間部件丟失或為零時,只書寫已提供的部件。如果 outputlist 數(shù)據(jù)是 empty,則無內(nèi)容可寫.但是,如果 outputlist 數(shù)據(jù)是 null,則輸出 null。在輸出 null 關鍵字時,要把關鍵字正確翻譯出來.要把錯誤數(shù)據(jù)作為 error errorcode 輸出。在輸出 error 關鍵字時,要把關鍵字

27、正確翻譯出來。如果在具有缺省顯示空間的模塊外使用此方法,則需要 object。例如,如果沒有指定對象就在標準模塊上調(diào)用此方法,則將導致錯誤發(fā)生,但是,如果在窗體模塊上進行調(diào)用,則會在窗體上顯示“outputlist。注意: 因為 print 方法是按照字符比例進行打印,所以字符數(shù)與字符所占據(jù)的寬度固定的列的數(shù)目無關。例如,像 “w 這樣的寬字母占據(jù)的寬度超過一固定列寬,而像 i” 這樣的窄字母占據(jù)的寬度則較小??紤]到要使用比平均字符更寬的空間,表列一定要留有足夠余地.另外,也可以使用固定間距的字體(像 courier 字體)來確保每一字符均只占一列。(4)printfrom方法用以將 form

28、 對象的圖象逐位發(fā)送給打印機。 語法:object。printform 說明:printform 將打印 form 對象的全部可見對象和位圖.在繪制圖形時,如果 autoredraw 屬性為 true,則在運行時printform 將打印 form 對象或 picturebox 控件上的圖形。printform 所使用的打印機是由操作系統(tǒng)的控制面板中的設置來決定。(5) refresh方法強制全部重繪一個窗體或控件。語法:object。refresh說明:在下列情況下使用 refresh 方法: 在另一個窗體被加載時顯示一個窗體的全部。更新諸如 filelistbox 控件之類的文件系統(tǒng)列表框

29、的內(nèi)容.更新 data 控件的數(shù)據(jù)結(jié)構(gòu). refresh 方法不能用于 mdi 窗體,但能用于 mdi 子窗體.不能在 menu 或 timer 控件上使用 refresh 方法。通常,如果沒有事件發(fā)生,窗體或控件的繪制是自動處理的。但是,有些情況下希望窗體或控件立即更新.例如,如果使用文件列表框、目錄列表框或者驅(qū)動器列表框顯示當前的目錄結(jié)構(gòu)狀態(tài),當目錄結(jié)構(gòu)發(fā)生變化時可以使用 refresh 更新列表.可以在 data 控件上使用 refresh 方法來打開或重新打開數(shù)據(jù)庫(如果 databasename, readonly, exclusive 或 connect 屬性的設置值發(fā)生改變),并

30、能重建控件的 recordset 屬性內(nèi)的 dynaset。(6)show方法用以顯示 mdiform 或 form 對象.語法:object。show style, ownerform 說明:如果調(diào)用 show 方法時指定的窗體沒有裝載,visual basic 將自動裝載該窗體。當 show 在顯示無模式窗體時,隨后遇到的代碼則要執(zhí)行。當 show 在顯示模式窗體 (modal form) 時,則隨后的代碼直到該窗體被隱藏或卸載時才能執(zhí)行。當 show 在顯示模式窗體時,除了模式窗體中的對象之外不能進行輸入(鍵盤或鼠標單擊)。對其它窗體進行輸入前程序必須隱藏或卸載模式窗體(通常是處于響應用

31、戶某些操作狀態(tài))。mdiform 不能是形式的。在模式窗體顯示時,雖然應用程序中的其它窗體失效,但其它應用程序不會失效。應用程序的啟動窗體在其 load 事件調(diào)用后會自動出現(xiàn).下面的例子說明如何使用ownerform 參數(shù):private sub cmdshowresults_click() 顯示模式窗體 frmresults。 frmresults.show vbmodal, meend sub(7)cls方法清除運行時 form 或 picturebox 所生成的圖形和文本。 語法:object。cls說明:cls 將清除圖形和打印語句在運行時所產(chǎn)生的文本和圖形,而設計時在 form 中使

32、用 picture 屬性設置的背景位圖和放置的控件不受 cls 影響。如果激活 cls 之前 autoredraw 屬性設置為 false, 調(diào)用時該屬性設置為 true,則放置在 form 或 picturebox 中的圖形和文本也不受影響。 這就是說,通過對正在處理的對象的 autoredraw 屬性進行操作,可以保持 form 或 picturebox 中的圖形和文本。調(diào)用 cls 之后,object 的 currentx 和 currenty 屬性復位為 0。3.窗體的常用事件 (1) load事件這個事件發(fā)生在窗體被裝入內(nèi)存時,且發(fā)生在窗體出現(xiàn)在屏幕之前。窗體出現(xiàn)之前,visual

33、basic會看一看load事件里有沒有代碼,如果有,那么它先執(zhí)行這些代碼,再讓窗體出現(xiàn)在屏幕上。(2) click事件,dblclick事件這兩個事件在單擊或雙擊窗體時發(fā)生.不過單擊窗體里的控件時,窗體的click事件并不會發(fā)生,visual basic會去看控件的click事件里有沒有代碼.(3)activate (活動事件)與deactivate(非活動事件) 顯示多個窗體時,可以從一個窗體切換到另一個窗體。每次激活一個窗體時,發(fā)生activate 事件,而前一個窗體發(fā)生deactivate事件.(4)resize事件在窗體被改變大小時會觸發(fā)此事件。4.窗體的控制(1) 裝入或卸出窗體 要

34、裝入或卸出窗體,用load或unload語句。 裝入窗體: load formname 卸出窗體: unload formnameformname變量是要裝入或卸出的窗體名。 load語句只是把窗體裝入內(nèi)存,并不顯示出來,要顯示窗體可以使用窗體的show方法。(2) 顯示或隱藏窗體 要顯示或隱藏窗體,用show或hide方法。若尚未裝入內(nèi)存則先裝入再顯示。 顯示窗體: formname。show mode 隱藏窗體: formname.hide formname變量是窗體名,可選變元mode為0(缺省值)時窗體為非模態(tài),為1時窗體為模態(tài)。模態(tài)窗體完全占有應用程序控制權,不允許切換到別的應用程序

35、,除非關閉!而非模態(tài)窗體則反之。(3)end語句end語句的功能是終止應用程序的執(zhí)行,并從內(nèi)存卸在所有窗體。語法是: end1.窗體的屬性(1)設置屬性的方法1)在設計態(tài)通過屬性窗口設置 直接在屬性窗口中選擇或輸入既可。2)在程序代碼中改變屬性值 代碼中的格式為: 對象名 。 屬性 = 屬性值 例:form1。backcolor=rgb(255,0,0)2。窗體的常用方法(1)hide方法用以隱藏 mdiform 或 form 對象,但不能使其卸載。語法:object。hide object 所在處代表一個對象表達式,其值為“應用于”列表中的一個對象。如果省略 object,則帶有焦點的窗體就

36、認為是該 object.說明: 隱藏窗體時,它就從屏幕上被刪除,并將其 visible 屬性設置為 false. 用戶將無法訪問隱藏窗體上的控件,但是對于運行中的 visual basic 應用程序,或?qū)τ谕ㄟ^ dde 與該應用程序通訊的進程及對于 timer 控件的事件,隱藏窗體的控件仍然是可用的。窗體被隱藏時,用戶只有等到被隱藏窗體的事件過程的全部代碼執(zhí)行完后才能夠與該應用程序交互.如果調(diào)用 hide 方法時窗體還沒有加載,那么 hide 方法將加載該窗體但不顯示它。(2)move方法用以移動 mdiform、form 或控件。語法:object 。 move left, top, wid

37、th, heightmove 方法的語法包含下列部分:說明:只有 left 參數(shù)是必須的。但是,要指定任何其它的參數(shù),必須先指定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。例如,如果不先指定 left 和 top 參數(shù),則無法指定 width 參數(shù)。任何沒有指定的尾部的參數(shù)則保持不變。(3)print 方法在 immediate 窗口中顯示文本。語法:object . print outputlist print 方法的語法具有下列對象限定符和部分:outputlist 參數(shù)具有以下語法和部分:spc(n) | tab(n) expression charpos說明:可以用空白或分號來分隔多個表達式。對

38、系統(tǒng)指定的國別設置,用小數(shù)點分隔符將所有打印到 immediate 視窗的數(shù)據(jù)正確格式化。關鍵字要用適用于主應用程序的語言輸出。對于 boolean 數(shù)據(jù),或者打印 true 或者打印 false。根據(jù)主機應用程序的地區(qū)設置來翻譯 true 和 false 關鍵字。使用系統(tǒng)能識別的標準短日期格式書寫 date 數(shù)據(jù).當日期或時間部件丟失或為零時,只書寫已提供的部件.如果 outputlist 數(shù)據(jù)是 empty,則無內(nèi)容可寫.但是,如果 outputlist 數(shù)據(jù)是 null,則輸出 null.在輸出 null 關鍵字時,要把關鍵字正確翻譯出來。要把錯誤數(shù)據(jù)作為 error errorcode

39、 輸出。在輸出 error 關鍵字時,要把關鍵字正確翻譯出來.如果在具有缺省顯示空間的模塊外使用此方法,則需要 object.例如,如果沒有指定對象就在標準模塊上調(diào)用此方法,則將導致錯誤發(fā)生,但是,如果在窗體模塊上進行調(diào)用,則會在窗體上顯示“outputlist”。注意: 因為 print 方法是按照字符比例進行打印,所以字符數(shù)與字符所占據(jù)的寬度固定的列的數(shù)目無關。例如,像 “w” 這樣的寬字母占據(jù)的寬度超過一固定列寬,而像 i” 這樣的窄字母占據(jù)的寬度則較小??紤]到要使用比平均字符更寬的空間,表列一定要留有足夠余地。另外,也可以使用固定間距的字體(像 courier 字體)來確保每一字符均只

40、占一列。(4)printfrom方法用以將 form 對象的圖象逐位發(fā)送給打印機。 語法:object。printform 說明:printform 將打印 form 對象的全部可見對象和位圖.在繪制圖形時,如果 autoredraw 屬性為 true,則在運行時printform 將打印 form 對象或 picturebox 控件上的圖形。printform 所使用的打印機是由操作系統(tǒng)的控制面板中的設置來決定。2。3 控件1.常用控件介紹(1)常用控件的屬性、方法和事件combobox 組合框(將列表框和文本框結(jié)合在一起)style屬性外觀屬性:取0時,系統(tǒng)創(chuàng)建一個帶下拉式列表框的組合框;

41、為1時,系統(tǒng)創(chuàng)建一個由文本框和列表框直接組合在一起的簡單組合框,可以從列表框中選擇,也可以直接在文本框中輸入;為2時,系統(tǒng)創(chuàng)建一個沒有文本框的下拉式列表框,單擊列表框上的按鈕才顯示文本框,用戶不能在文本框中輸入,只能在列表框中選擇。text 屬性其值為用戶從列表框中選定的文本或直接輸入的文本。additem方法添加列表項,使用格式: 對象名。 additem列表項文本,插入位置序號若不指定位置,則插入到列表末尾。clear方法刪除列表所有項目removeitem 方法刪除列表項,使用格式: 對象名 。 removeitem 刪除項序號commandbutton 命令按鈕cancel屬性取消屬性

42、,它為true時, 按esc即等于單擊此按鈕。default屬性缺省屬性,它為true時, 按回車鍵即等于單擊此按鈕。timer計時器interval屬性兩次調(diào)用timer事件的事件間隔,用于創(chuàng)建動態(tài)效果。frame 框架checkbox 復選框optionbutton選項按鈕alignment屬性決定它們的對齊方式,0=左對齊,1=右對齊。value屬性決定它們是否被選中的屬性2。常用控件的使用辨析 (1)文本框和標簽的區(qū)別: 文本框通常用于向計算機輸入信息,而標簽通常用于輸出信息。文本框是一個十分重要的控件,因為由復選框和選項按鈕向程序輸入的信息畢竟只有少數(shù)的幾條信息而已。標簽和文本框的區(qū)

43、別很小,標簽可以看成是一個在運行時不能修改正文的文本框,因此標簽主要用于輸出信息. (2) label的autosize屬性和wordwrap屬性為了使標簽具有垂直伸展和字換行處理,必須設置它的autosize屬性和wordwrap屬性同時為true。autosize屬性為false,wordwrap屬性為false時,若標簽不夠高而caption太長時,caption將被切割掉.autosize屬性為false,wordwrap屬性為true時,情況也如此.autosize屬性為true,wordwrap屬性為false時,表示可以水平伸展,但只顯示一行信息。(3) picturebox和i

44、mage的stretch屬性和autosize屬性image只有stretch屬性,而picturebox只有autosize屬性。autosize屬性設為true,則picturebox改變自己的大小來適應其中的圖形。stretch屬性設為true,則image中的圖形將改變自己的大小來適應外面的邊框。(4)frame 框架、checkbox 復選框、optionbutton選項按鈕的區(qū)別:復選框和選項按鈕用于向程序輸入信息, 框架用來對復選框和選項按鈕進行分組.復選框選中時會在小方框里打一個鉤,選項按鈕選中時會在小圓圈里點一個點。2.4 定制菜單1菜單概述windows中的菜單一般由菜單條

45、、菜單、菜單項、子菜單、彈出式菜單組成。2普通菜單的設計(1)給菜單命名菜單標題和菜單命令也有caption和name屬性,設置了這兩個屬性就等于創(chuàng)建了菜單。name是一個抽象名稱,caption是屏幕上可見的,可在caption里加入 “” 來設置熱鍵。(2)增加和刪除菜單在menu editor中部有三個命令鈕分別是下一個、插入、刪除。插入可用來增加新的菜單。在這三個鍵下面的caption列表框里選中菜單項(這時它的底色就變成深藍色),單擊插入鍵,visual basic將上一個增亮菜單下推并增亮一空行,就可以輸入新菜單名和標題了。刪除鍵可用來刪掉菜單。選中要刪掉的菜單,單擊delete鍵

46、就可以刪掉它了。(3)移動菜單標題有四種情況:向上移動,向下移動,向左縮排,向右縮排,選中某一菜單標題,安上下箭頭,則這個菜單將上下移動到你喜歡的位置上,這也決定了它在界面中的位置。如果按左右箭頭,情況則有所不同。由于菜單是分級的,所以,如果它沒有縮排,則它是一個菜單標題;如果它縮排一次,那么它將變成一個菜單命令;如果縮排兩次,那么它將成為一個子菜單命令。vb里可以總共設計四層子菜單。(4)設置分離條分離條是指在菜單中將命令分組的線,vb將分離條也看成一個菜單項,它也需要caption和name屬性,而且也有其它屬性,分離條與菜單項的區(qū)別是分離條的caption屬性必須是連字號即減號。也就是,

47、當設置了一個caption屬性為 “” 的菜單項時,實際上就設置了一個分離條,分離條的名字可以是barfile1之類,以表明分離條的位置.(5) 菜單的各種簡單屬性在菜單編輯器里有許多確認框和一些文本框及一個下拉式的列表框,這些決定了菜單的各種屬性。1) checked 復選屬性這個屬性值設置為真,將在菜單命令左邊產(chǎn)生一個打勾的確認標志.2) enabled有效屬性 各種各樣的用戶會產(chǎn)生千奇百怪的操作,在許多edit菜單里都會有不同形式的讓菜單命令模糊的情況.enabled屬性為真,則菜單命令是清晰的,enabled屬性為假,則菜單命令是模糊的,這時用戶就不能選中這個菜單項了.3) visib

48、le 可見屬性 對暫時不用的菜單, 如果把visible屬性設為假,則菜單根本不會出現(xiàn)在屏幕上。這樣做比把enabled屬性設為假顯得更加干脆!4) index屬性可以生成菜單命令數(shù)組,用索引號區(qū)分開.例如向file菜單中添加一系列最近打開的文件名。添加菜單可用load方法。以上屬性可以在運行時設置,形成動態(tài)的菜單的情況。例如:mnuundo。enabled = falsemnuproperty.visible = false還可以改變caption等屬性。mnuundo.caption = “redo”3。 生成彈出式菜單(或浮動菜單) 幾乎每個windows應用程序都提供彈出式菜單,用戶可

49、以右鍵單擊窗體或控件取得這個菜單.彈出式菜單也屬于普通菜單,只是不固定在窗體上,而是可以在任何地方顯示。彈出式菜單用popupmenu方法調(diào)用。假設已經(jīng)用菜單編輯器生成了名為mnuedit的菜單,則可以在mouseup事件加入如下代碼就可以生成彈出式菜單:if button = 2 then popupmenu mnuedit2.5設計狀態(tài)條、工具欄、進程條等1創(chuàng)建狀態(tài)條選中狀態(tài)條,按f4鍵進入屬性窗口,雙擊(custom)可以進入主要的設置窗口sbarctrl屬性窗口。(1) 選擇面板形狀在sbarctrl屬性窗口里選擇general標簽,在style列表框里選擇多面板(缺省形式)或單面板簡

50、單文本形式。(2) 添加或刪除狀態(tài)條面板 在sbarctrl屬性窗口里選擇panels標簽,單擊insert按鈕添加一個面板,或單擊remove按鈕刪除一個面板。(3) 在單面板里顯示文本 在sbarctrl屬性窗口里選擇general標簽,在simpletext框里輸入想顯示在狀態(tài)條面板里的文本.用代碼顯示的方式是:statusbar1。simpletext = new string to appear(4) 在多面板里顯示文本或圖形1)。 在sbarctrl屬性窗口里選擇panels標簽,用index旁的按鈕選擇面板序號。2). 在text框里輸入想顯示在狀態(tài)條面板里的文本。3)。 如果想

51、加入圖形,單擊browse按鈕打開一個圖形選擇對話框,選擇想加入的圖形,然后單擊打開按鈕。4)。 最后按確定按鈕。5)。 用代碼顯示的方式是:statusbar1。panels(x)。text = new string to appear6). 編寫代碼如果是一個單面板狀態(tài)條,當用戶單擊狀態(tài)條時,只需用下面的事件過程來響應:private sub statusbar1_click()end sub如果是一個多面板狀態(tài)條,就需要鑒別用戶單擊的是哪一個面板,可用下面的事件過程來識別用戶所單擊的面板:private sub statusbar1_panelclick(byval panel as p

52、anel)select case panel.indexcase 1code to follow if user clicks the first panelcase 2code to follow if user clicks the second panelcase 3code to follow if user clicks the third panelend selectend sub2創(chuàng)建工具欄(1)建立工具條1).在工具箱里單擊工具條圖標,拖到窗體的任何位置,visual basic自動將toolbar移到頂部.2)。按f4鍵打開屬性窗口。3).雙擊(custom),打開toolbar屬性窗口.4)。 選擇buttons標簽。5)。 單擊insert按鈕,visual basic就會在你的工具條上顯示一個空按鈕,現(xiàn)在為你的每一個按鈕重復這一步。6). 單擊確定按鈕。 如果想把按鈕分組,首先生成一個分隔的按鈕,再在剛才提到的對話框里將這個按鈕的style屬性改為3-separator。(2) 為工具條增加圖畫1)。 在visual basic工具箱里單擊imagelist圖標,并將它拖到窗體的任何位置(位置不重要,因為它總是不可見的).2). 按f4打開屬性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論