版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VisualBasic
程序設(shè)計(jì)教程2
計(jì)算機(jī)應(yīng)用遍及各行各業(yè);
計(jì)算機(jī)用戶的發(fā)展:專家專業(yè)人員普通用戶
程序設(shè)計(jì)可以讓計(jì)算機(jī)做任意你想做的事;1、有必要學(xué)習(xí)程序設(shè)計(jì)嗎?32、為什么選擇VisualBasic?大部分DOS平臺(tái)下的程序設(shè)計(jì)語言都將被淘汰;其它語言可以實(shí)現(xiàn)的功能VB都能實(shí)現(xiàn);VB是當(dāng)今世界最流行的三大語言之一(VC、JAVA);
相對(duì)而言,VB比較容易掌握。4本課程學(xué)習(xí)要求強(qiáng)化實(shí)踐這門課主張程序設(shè)計(jì)是高強(qiáng)度的腦力勞動(dòng),不是聽會(huì)的、也不是看會(huì)的,而是練會(huì)的。這與以往的教學(xué)安排最大的不同突出重點(diǎn)重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。語句只是表達(dá)工具,要求堂上積極思考,盡量當(dāng)堂學(xué)懂,重在培養(yǎng)分析問題和解決問題的能力。養(yǎng)成良好的編程習(xí)慣強(qiáng)調(diào)程序的可讀性;變量要加注釋;程序構(gòu)思要有說明;學(xué)會(huì)如何調(diào)試程序;盡可能優(yōu)化程序的算法;對(duì)運(yùn)行結(jié)果要做正確與否的分析;5動(dòng)手動(dòng)腦,強(qiáng)調(diào)理論指導(dǎo)下的實(shí)踐有條有理的實(shí)踐。實(shí)踐出真知“自學(xué)、動(dòng)手、應(yīng)用、上網(wǎng)”在編寫大量程序之后,才能感到運(yùn)用自如。學(xué)習(xí)方法6教學(xué)內(nèi)容:第一章VisualBasic概述第二章創(chuàng)建用戶界面第三章VisualBasic語言基礎(chǔ)第四章算法基礎(chǔ)及VisualBasic的基本語句第五章數(shù)組第六章程序調(diào)試第七章文件第八章過程第九章圖形處理及多媒體應(yīng)用(簡(jiǎn)單介紹)第十章數(shù)據(jù)庫操作及編程(選擇內(nèi)容)第1章
VisualBasic概述8教學(xué)要求了解VisualBasic的簡(jiǎn)介;了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法;了解事件驅(qū)動(dòng)過程的程序設(shè)計(jì)原理;掌握VisualBasic的開發(fā)環(huán)境的常用工具(控件箱、窗體設(shè)計(jì)器、工程資源管理器、屬性窗口和代碼編輯窗口等)的使用和基本操作;掌握創(chuàng)建VisualBasic應(yīng)用程序的一般步驟;掌握工程的建立、運(yùn)行、調(diào)試方法掌握可執(zhí)行文件的生成;91.1VisualBasic簡(jiǎn)介1.2面向?qū)ο蟮某绦蛟O(shè)計(jì)方法基礎(chǔ)1.3事件驅(qū)動(dòng)1.4VisualBasic的集成開發(fā)環(huán)境1.5創(chuàng)建VisualBasic應(yīng)用程序的一般步驟1.6VisualBasic集成開發(fā)環(huán)境的基本操作
教學(xué)內(nèi)容101.1VisualBasic簡(jiǎn)介
BASIC語言(BeginnersAll-purposeSymbolicInstructionCode初學(xué)者符號(hào)指令代碼)BASIC語言的版本多達(dá)幾百種,比較著名的有:GW-BASICTrueBASICQ-BASICQuickBASICVisualBASIC11
在Windows操作平臺(tái)下,開發(fā)具有圖形用戶界面(GUI)的應(yīng)用程序的強(qiáng)有力的工具之一;
以Basic語言為基礎(chǔ),易于學(xué)習(xí)、掌握;
具有可視化(Visual)編程的特性,即無需大量代碼去描述界面的外觀和控件的位置;
是包括界面設(shè)計(jì)、程序編碼、調(diào)試、編譯并創(chuàng)建可執(zhí)行程序的集成開發(fā)環(huán)境IDE(IntegratedDevelopEnvironment);
引進(jìn)了面向?qū)ο缶幊蹋∣OP)的設(shè)計(jì)方法;
和微軟公司軟件之間的溝通較好;
全面支持Windows系統(tǒng)的對(duì)象嵌入與鏈接(OLE)技術(shù);
強(qiáng)大的數(shù)據(jù)庫功能;VisualBasic簡(jiǎn)介121、可視化(Visual)2、面向?qū)ο?ObjectOriented,OO
)VisualBasic和Windows是緊密結(jié)合的,它可直接調(diào)用Windows的系統(tǒng)資源,從而大大減少了軟件開發(fā)難度,提高了開發(fā)效率。VisualBasic的兩個(gè)重要的特點(diǎn):13VisualBasic的發(fā)展91年,VisualBasic1.092年,VisualBasic2.093年,VisualBasic3.095年,VisualBasic4.097年,VisualBasic5.098年,VisualBasic6.0VisualBasic6.0是一個(gè)32位的軟件開發(fā)環(huán)境,必須在Windows95或以上版本使用,開發(fā)出的應(yīng)用軟件也是32位的。14VisualBasic6.0的版本簡(jiǎn)介三種版本:
學(xué)習(xí)版(Learing)——面向初學(xué)者,包括VB的主要功能.
專業(yè)版(Professional)——提供一套功能完備的開發(fā)工具,包括ActiveX和Internet控件開發(fā)工具等.
企業(yè)版(Enterprise)——最高級(jí)的版本,針對(duì)小組環(huán)境中建立分布式應(yīng)用程序的編程人員的版本,除專業(yè)版的全部功能外,包括VisualSourceSafe和AutomationandComponentManager等工具.151.2面向?qū)ο蟮某绦蛟O(shè)計(jì)方法基礎(chǔ)
傳統(tǒng)的面向過程的程序設(shè)計(jì)
是一種強(qiáng)調(diào)功能抽象化和模塊化的編程方法,將解決問題的過程看作是一個(gè)處理過程。
設(shè)計(jì)思想:
描述一輛汽車動(dòng)作的時(shí)候,著眼于汽車整體從一地到另一地的運(yùn)動(dòng)過程。
程序=數(shù)據(jù)結(jié)構(gòu)+算法16
面向?qū)ο蟮某绦蛟O(shè)計(jì)(ObjectOrientedProgramming,OOP)是一種以對(duì)象為基礎(chǔ),以事件來驅(qū)動(dòng)對(duì)象執(zhí)行的程序設(shè)計(jì)技,將解決問題的過程看作是一個(gè)對(duì)象分類演繹的過程。
設(shè)計(jì)思想:
描述一輛汽車動(dòng)作的時(shí)候,著眼于組成汽車的部件在各個(gè)時(shí)刻的狀態(tài),通過各部件狀態(tài)的組合,確定整個(gè)汽車的工作特性和規(guī)律。
基本思想:
通過建立與具體實(shí)際應(yīng)用相對(duì)應(yīng)的對(duì)象,并通過這些對(duì)象的交互來創(chuàng)建具體的應(yīng)用程序。
面向?qū)ο蟮某绦蛟O(shè)計(jì)17基本概念
對(duì)象(Object)
:是動(dòng)作體的邏輯模型。是一個(gè)包括屬性和方法的并被封裝起來的整體。
類(Class):是對(duì)同一種對(duì)象的概括、抽象。用餅干模子和餅干之間的關(guān)系作比,餅干模子是類,它確定了所有餅干的特征,比如大小和形狀,用類可以創(chuàng)建對(duì)象。對(duì)象就是餅干,對(duì)象是類的具體化,實(shí)例。
屬性(Property):
指對(duì)象的性質(zhì)、特征。
方法(Method):指對(duì)象能執(zhí)行的動(dòng)作。
事件():
指能夠被對(duì)象識(shí)別的動(dòng)作。18面向?qū)ο髮?duì)象名人氣球窗體屬性姓名性別年齡學(xué)歷色彩大小重量材料大小名稱標(biāo)題顏色方法呼吸哭笑爆破飛顯示隱藏事件
挨打表揚(yáng)針刺充氣單擊雙擊19面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn):符合人們的習(xí)慣思維方法。易于軟件的維護(hù)和功能的增減。提高軟件的開發(fā)效率。軟件界面友好。20事件:對(duì)象能夠識(shí)別并作出反映的外部刺激。事件驅(qū)動(dòng):又稱消息驅(qū)動(dòng)。過程化程序設(shè)計(jì):按順序一行一行執(zhí)行代碼,通過分支、循環(huán)和調(diào)用改變程序流程,執(zhí)行次序完全由程序代碼控制;事件驅(qū)動(dòng)程序設(shè)計(jì):也有相應(yīng)的程序代碼,僅在該事件發(fā)生時(shí),才會(huì)被執(zhí)行。事件發(fā)生的順序決定了代碼執(zhí)行的順序,因此每次執(zhí)行應(yīng)用程序時(shí),程序代碼并不是按照程序編寫的順序來執(zhí)行的。1.3事件驅(qū)動(dòng)過程的程序設(shè)計(jì)原理211.4VisualBasic的集成開發(fā)環(huán)境VisualBasic的開發(fā)環(huán)境VisualBasic是一個(gè)包括編輯、測(cè)試和程序調(diào)試等各種程序開發(fā)工具的集成工具開發(fā)環(huán)境(IDE)。VB的啟動(dòng)(1)通過[開始]菜單,[開始]→[程序]→[MicrosoftVisualStudio6.0]→[MicrosoftVisualBasic6.0];(2)在桌面上創(chuàng)建VB快捷方式后,雙擊快捷圖標(biāo);(3)直接單擊某工程文件名,可先打開VB,再打開該工程;VB的退出(1)單擊關(guān)閉按鈕;(2)雙擊控制菜單按鈕;(3)執(zhí)行[文件]菜單的[退出]項(xiàng);22標(biāo)題欄菜單欄工具欄控件箱工程資源管理器屬性窗口窗體設(shè)計(jì)器窗體設(shè)計(jì)器代碼編輯器“窗體布局”窗口VisualBasic用戶界面1標(biāo)題欄除了顯示正在開發(fā)的工程名之外,還顯示系統(tǒng)的工作狀態(tài)。
設(shè)計(jì)態(tài)(Design):編輯代碼和設(shè)計(jì)界面時(shí)的狀態(tài);
運(yùn)行態(tài)(Run):運(yùn)行應(yīng)用程序時(shí)的狀態(tài);
中止態(tài)(Break):程序暫停執(zhí)行時(shí)的狀態(tài);2菜單欄以菜單形式顯示VB提供的所有功能命令3工具欄
由若干命令按鈕組成,提供常用命令的快速訪問,有標(biāo)準(zhǔn)、調(diào)試、窗體設(shè)計(jì)和編輯四類工具欄。工具欄的隱藏和顯示由“視圖”菜單的“工具欄”項(xiàng)進(jìn)行。4窗體設(shè)計(jì)器
窗體是VB程序的最基本的對(duì)象,象一個(gè)容器,用來存放其它控件對(duì)象。5控件箱
顯示系統(tǒng)提供的控件按鈕,通常系統(tǒng)顯示的為缺省控件。添加其它控件的方法如下:
在控件箱上單擊右鍵
在彈出式菜單上選擇“部件”項(xiàng)在“部件”窗口選擇要添加的部件(復(fù)選框)6工程資源管理器和代碼編輯器工程資源管理器:列出當(dāng)前工程所包含的窗體和模塊(查看對(duì)象和查看代碼按鈕)代碼編輯器:編輯程序代碼(兩個(gè)列表框)7屬性窗口顯示指定窗體中指定對(duì)象的屬性列表說明:屬性窗口、工程資源管理器等由“視圖”菜單控制是否在屏幕上顯示。25
利用VisualBasic開發(fā)的應(yīng)用程序被稱為一個(gè)工程。在設(shè)計(jì)一個(gè)應(yīng)用系統(tǒng)時(shí),系統(tǒng)會(huì)建立一個(gè)擴(kuò)展名-*為.vbp的工程文件。它是由窗體文件(.frm)、代碼模塊(.bas)、自定義控件(.ocx)及應(yīng)用所需的環(huán)境設(shè)置組成的。
應(yīng)用程序由兩部分組成:1、用戶界面——與用戶進(jìn)行交互的窗體;(窗體上安排有控件、菜單等對(duì)象)2、實(shí)際算法設(shè)計(jì)——完成信息處理的程序代碼的設(shè)計(jì),包括數(shù)據(jù)輸入、處理變換、結(jié)果輸出等。1.5開發(fā)應(yīng)用程序的一般步驟26Control1Procedure1VisualBasic應(yīng)用程序結(jié)構(gòu)ApplicationProjectform1formnControlnProcedure1ProcedurenControl1ControlnProcedure
1proceduren……………Proceduren……應(yīng)用程序工程窗體控件與過程271、創(chuàng)建界面:選擇控件表達(dá)輸入、輸出;2、設(shè)置屬性:調(diào)整控件屬性,使窗體布局盡可能美觀,使用盡可能方便;3、編寫程序代碼:進(jìn)行信息處理等;4、保存工程:一個(gè)工程由窗體、代碼模塊、自定義控件及環(huán)境設(shè)置等組成;工程文件:vbp窗體文件:frm5、運(yùn)行并調(diào)試程序:排除語法錯(cuò)誤;排除邏輯錯(cuò)誤;6、創(chuàng)建可執(zhí)行文件;1.5創(chuàng)建VisualBasic應(yīng)用程序的一般步驟281.6VisualBasic開發(fā)環(huán)境的基本操作
例1-1:在窗體上顯示“你好!”和一個(gè)命令按鈕,單擊該按鈕,文字變成“歡迎進(jìn)入VB世界!”。[實(shí)現(xiàn)步驟]啟動(dòng)VB,系統(tǒng)自動(dòng)創(chuàng)建工程1和窗體1(Form1)創(chuàng)建界面單擊控件工具欄上的標(biāo)簽,將鼠標(biāo)移到窗體上,光標(biāo)呈十字形;按住鼠標(biāo)左鍵,在窗體上拖動(dòng),這樣就在窗體上放置了一個(gè)標(biāo)簽框;使用同樣的方法,在窗體上放置一個(gè)命令按鈕控件;調(diào)整控件大小和位置29設(shè)置屬性標(biāo)簽:Autosize屬性為True;Caption屬性為“你好!”;Font屬性為宋體三號(hào)字命令按鈕:Caption屬性為“確定”添加代碼(兩種方法)Label1.Caption=“歡迎進(jìn)入VB世界!”保存,先保存窗體,再保存工程。運(yùn)行和調(diào)試生成可執(zhí)行文件[實(shí)現(xiàn)步驟]30代碼輸入規(guī)則
代碼按行輸入,一行代碼輸入完畢,換行輸入下一行代碼;
代碼不區(qū)分字母大小寫,(雙引號(hào)內(nèi)的字符串除外)
代碼中除了中文字外,所有的符號(hào)都必須在英文狀態(tài)下輸入;’單引號(hào)后的內(nèi)容為注釋,不執(zhí)行,只是對(duì)該行代碼的文字說明,方便程序理解;31上機(jī)注意事項(xiàng)
編寫代碼時(shí),一定要通過“對(duì)象”列表框選取對(duì)象,“過程”列表框選取過程,自動(dòng)生成該對(duì)象的事件過程的框架;代碼中,一定要注意控件的對(duì)象名與在屬性窗口中設(shè)置的NAME屬性一致。
保存時(shí),先保存窗體,再保存工程;打開時(shí),一定要打開工程文件,由工程調(diào)窗體。
不要在非VB以外的環(huán)境下,改變窗體文件的名稱,否則工程中記錄的信息無效,下次再打開工程文件時(shí),將會(huì)出錯(cuò),不能正常加載窗體。32九、使用幫助(help)
幫助信息對(duì)任何Windows下的系統(tǒng)都是至關(guān)重要的,學(xué)會(huì)使用幫助是較好地掌握該系統(tǒng)的前提。
“幫助”菜單中的“幫助主題”目錄:在目錄中查找所需的幫助信息;索引:鍵入所需幫助的關(guān)鍵詞選中窗體中的控件,按F1功能鍵
在代碼窗口選中需要幫助的關(guān)鍵詞,按F1功能鍵第二章創(chuàng)建用戶界面34
掌握窗體的常用屬性、事件和方法以及多窗體和MDI窗體的概念;掌握常用控件:文本框、標(biāo)簽、命令按鈕、列表框、組合框、圖片框、單選按鈕和復(fù)選框的常用屬性、事件和方法;掌握菜單的制作和使用方法。教學(xué)要求35
2.1創(chuàng)建窗體
2.2VisualBasic的常用控件
2.3制作菜單教學(xué)內(nèi)容36窗體:
窗體是VB應(yīng)用程序的基本構(gòu)造模塊,用于創(chuàng)建VB應(yīng)用程序用戶界面或?qū)υ捒?,是包容各種控件對(duì)象的容器。由標(biāo)題欄、邊框以及客戶區(qū)組成。2.1創(chuàng)建窗體372.1.1窗體的屬性、方法與事件
Name(名稱):窗體名稱,在程序代碼中,被作為對(duì)象的標(biāo)識(shí)名,以識(shí)別不同的窗體對(duì)象,自行命名窗體時(shí),必須以一個(gè)字母開頭,可包含數(shù)字和下劃線,不能包含空格和標(biāo)點(diǎn)符號(hào),長(zhǎng)度小于40個(gè)字符。
Caption:窗體標(biāo)題,是出現(xiàn)在窗體標(biāo)題欄上的文本,缺省使用窗體名。BackColor與ForeColor:窗體的背景色與前景色BorderStyle:窗體邊框風(fēng)格。設(shè)定值及相關(guān)的VB內(nèi)部常量及不同風(fēng)格詳見下表:1、常用屬性38
常數(shù)設(shè)置值 描述vbBSNone0 無(沒有邊框或與邊框相關(guān)的元素)vbFixedSingle1 固定單邊框??梢园刂撇藛慰?,標(biāo)題欄和關(guān)閉按鈕,不能改變尺寸。vbSizable 2 可調(diào)整的邊框??梢愿淖兇绑w大小。
(缺省值)vbFixedDouble3 對(duì)話框風(fēng)格的窗體。大小不能改變。vbFixedToolWindow 4工具欄風(fēng)格窗體。大小不能改變。vbSizableToolWindow5工具欄風(fēng)格窗體。大小可變。
BorderStyle屬性的六種設(shè)置值39
Enabled:活動(dòng)屬性。缺省值為”True”,當(dāng)設(shè)置為”False”時(shí),窗口及其上控件將不能被訪問。
Left、Top、Height和Width:決定窗體位置與大小。Left和Top是窗體左上角的坐標(biāo)(屏幕左上角為坐標(biāo)零點(diǎn));Height和Width是窗體的高度和寬度,單位均為特維;
Font:字體屬性,設(shè)置窗體上正文字體、字型、字號(hào)等;
Visible:可見屬性。缺省為“True”;當(dāng)設(shè)置為“False”時(shí),窗體隱藏,注意:此屬性只在運(yùn)行時(shí)生效。
Picture:背景圖片屬性。
Moveable:可移動(dòng)屬性,缺省為True,窗體在運(yùn)行時(shí)可拖動(dòng),F(xiàn)alse時(shí),不能拖動(dòng);窗體常用屬性40在VB中,有兩種設(shè)置窗體(或其他對(duì)象)屬性值的方法。在設(shè)計(jì)時(shí),通過屬性窗口為其設(shè)定各種屬性值;在程序執(zhí)行過程中改變屬性值,即通過程序代碼改變屬性值在程序代碼中則使用如下格式的代碼行來改變屬性值:
Object.Property=Expression式中,Object是對(duì)象名;
Property是屬于該對(duì)象的某個(gè)屬性名;
Expression是為該屬性賦予的值,必須和屬性類型一致,即屬性是字符型,表達(dá)式也應(yīng)是字符型;屬性是邏輯型,表達(dá)式也應(yīng)是邏輯型。
例:Labe11.Caption="歡迎學(xué)習(xí)VB!“
Form1.Enable=False
Form1.Caption=Label1.Caption2.1.2定制窗體屬性41窗體的常用方法
Show:顯示方法。如:form2.Show
Hide:隱藏方法;如:form2.
HideMove:移動(dòng)方法;如:form1.Move[left,top,width,height]Print:打印方法;
Cls:清除方法,清除窗體上所有打印的文本或圖形
Refresh:刷新方法;通常窗體的刷新是自動(dòng)進(jìn)行的。
方法可使對(duì)象執(zhí)行一個(gè)動(dòng)作或任務(wù)。使用方法的格式是:
對(duì)象名.方法或?qū)ο竺?方法[Arg1,Arg2,...]
后一種方法是帶有參數(shù)的方法。窗體的常用方法42PrivateSubCommand1_Click()Diminchw,inchhinchw=Form1.Widthinchh=Form1.HeightMsgBox“將窗體移動(dòng)到屏幕的左上角,同時(shí)尺寸縮小為原來的一半"Form1.Move0,0,inchw/2,inchh/2EndSub例:使用Move方法移動(dòng)一個(gè)窗體,重新定位在屏幕左上角,尺寸縮小一倍。舉例:43事件:能夠被對(duì)象所識(shí)別的動(dòng)作;
當(dāng)某事件發(fā)生了,系統(tǒng)會(huì)自動(dòng)執(zhí)行其事件過程內(nèi)的代碼事件過程的一般格式:
PrivateSub對(duì)象名_事件名([參數(shù)表])(程序代碼)
EndSub例如:窗體的常用事件
Click:?jiǎn)螕羰录?/p>
DblClick:雙擊事件;
Load:裝載事件;
Resize:在窗體被改變大小時(shí),會(huì)觸發(fā)本事件;
Activate:激活事件,當(dāng)窗體變?yōu)楫?dāng)前窗口時(shí),引發(fā)本事件;
Deactivate:失去激活事件,當(dāng)窗體失去激活狀態(tài),即另一個(gè)窗體成為當(dāng)前窗口時(shí),引發(fā)本事件。PrivateSubForm_Click()’vb語句EndSub窗體常用事件442.1.3窗體的顯示、隱藏、裝載和卸載
1、窗體的顯示與隱藏
2、裝載窗體和Load事件
3、卸載窗體與Unload事件
4、End語句45(1)
顯示窗體,可在程序中加入以下代碼:
Formname.Show[Style]
其中:Formname是要顯示的窗體名。
Show方法的Style參數(shù)決定窗體是有模式的(vbModel)還是無模式的(vbModeless)。有模式窗體不允許用戶同時(shí)與應(yīng)用程序的其他窗體交互,如Windows程序中的命令執(zhí)行確認(rèn)窗口;無模式窗體則允許用戶與一個(gè)程序的其他窗口自由交互,如VB環(huán)境中的工程、屬性和代碼窗口等,缺省值是無模式1、窗體的顯示與隱藏(2)隱藏窗體,可在程序中加入以下代碼:
Formname.Hide
其中:Formname是要隱藏的窗體名。 46(1)編寫事件過程時(shí),建議不要自行輸入程序框架,而應(yīng)選定對(duì)象和事件過程,由系統(tǒng)自動(dòng)產(chǎn)生框架。(2)命令按鈕1的單擊事件名為Command1_Click,命令按鈕2的單擊事件名為Command2_Click,但對(duì)于一個(gè)窗體,單擊事件過程名為Form_Click,而不是Form1_Click,即窗體的事件過程中的對(duì)象名是FORM,而非具體的name屬性值。例:?jiǎn)螕舸绑w1,顯示窗體2。
PrivateSubForm_Click()
Form2.ShowEndSub注意:472、裝載窗體和Load事件
使用裝載語句可把窗體(或其他對(duì)象)載入內(nèi)存,但并不顯示它。
裝載語句的格式是:
LoadObject
其中:Object是窗體名(對(duì)象名)
由于VB應(yīng)用程序在執(zhí)行時(shí),會(huì)自動(dòng)裝載啟動(dòng)窗體,所以沒有必要對(duì)啟動(dòng)窗體使用Load語句。當(dāng)系統(tǒng)裝載窗體時(shí),將引發(fā)窗體的Load事件;在使用Show方法顯示窗體時(shí),也會(huì)自動(dòng)將尚未載入內(nèi)存的窗體裝入內(nèi)存,并引發(fā)該窗體的Load事件。483、卸載窗體與Unload事件
使用卸載語句可把窗體(或其他對(duì)象)從內(nèi)存卸載。
卸載語句的格式是:
UnloadObject
其中:Object是窗體名(對(duì)象名) 卸載將使該對(duì)象的所有屬性重新恢復(fù)為設(shè)計(jì)態(tài)時(shí)設(shè)定的初始值;卸載還將引發(fā)對(duì)象的Unload事件。如果卸載的對(duì)象是程序唯一的窗體,則將終止程序的運(yùn)行。一起來看個(gè)例子吧!494.End語句
在程序代碼中可使用End語句結(jié)束程序運(yùn)行,形式是:
End
執(zhí)行該語句將終止應(yīng)用程序的執(zhí)行,并從內(nèi)存卸載所有窗體。50格式:[Object.]Print<輸出項(xiàng)表>功能:將輸出項(xiàng)顯示在窗體或圖片框上。說明:(1)對(duì)象名缺省,則輸出到窗體上;(2)輸出項(xiàng)之間用逗號(hào)或分號(hào)間隔,若用逗號(hào)間隔,則為標(biāo)準(zhǔn)輸出;若用分號(hào)間隔,則為緊湊輸出。2.1.4Print方法PrivateSubcommand1_Click()Print1,2,3Print1;2;3PrintPrint"ab","cd"Print"ab;";"cd;"EndSub觀察下列Print語句的執(zhí)行結(jié)果。51多窗體程序設(shè)計(jì)當(dāng)應(yīng)用程序中有多個(gè)窗體界面時(shí),設(shè)計(jì)時(shí),同樣先新建一個(gè)工程,其中有一個(gè)窗體form1,然后通過下列步驟,設(shè)計(jì)多窗體:1、添加并設(shè)計(jì)窗體
“工程”
“添加窗體”,再依次設(shè)計(jì)每一個(gè)窗體的界面元素以及相應(yīng)的事件過程;2、設(shè)置啟動(dòng)窗體
“工程”
“工程屬性”,在“通用”選項(xiàng)卡上,設(shè)置“啟動(dòng)對(duì)象”。注意:(1)在啟動(dòng)窗體中,必須要有對(duì)其他窗體的引用接口,可以是菜單命令或命令按鈕的形式,否則其他窗體將無法顯示。(2)多窗體應(yīng)用程序保存時(shí),先將每一個(gè)窗體以一個(gè)獨(dú)立的窗體文件保存,擴(kuò)展名為.frm,再保存工程文件。(3)多窗體應(yīng)用程序打開時(shí),直接打開工程文件,將會(huì)把該程序中所有的窗體文件都裝載。52MDI(多文檔界面)窗體
在多窗體應(yīng)用程序中,一般有一個(gè)MDI窗體(框架,父窗體)構(gòu)成外部容器窗口,再包括不同的子窗體構(gòu)成內(nèi)層窗體界面。創(chuàng)建MDI應(yīng)用程序的步驟:1、“工程”
“添加MDI窗體”;2、將應(yīng)用程序中其它窗體的
MDIchild
屬性設(shè)置為“True”.3、將MDI窗體設(shè)置為啟動(dòng)窗體。注意:1、一個(gè)應(yīng)用程序中,只有一個(gè)MDI窗體;2、在MDI窗體上,除PictureBox和Timer外,一般不能直接放置其他控件,3、關(guān)閉MDI窗體,將自動(dòng)關(guān)閉所有打開的子窗體。4、運(yùn)行時(shí),子窗體只能在MDI窗體內(nèi)移動(dòng)。舉例532.2VisualBasic的常用控件2.2.1概述
2.2.2常用控件54控件名功能Pointer指針用于改變控件大小和位置等PictureBox圖片框顯示圖形或圖象Label標(biāo)簽用于文字說明,顯示提示性信息TextBox文本框用于字符輸入Frame框架用于組合控件,將控件分組CommandButton命令按鈕單擊執(zhí)行命令CheckBox復(fù)選框用于多項(xiàng)選擇OptionButton選項(xiàng)按鈕用于從多個(gè)選項(xiàng)中單選其一ComboBox組合框列表框與文本框的組合ListBox列表框列出多個(gè)選項(xiàng)供選擇H.ScrollBar水平滾動(dòng)條產(chǎn)生水平滾動(dòng)條V.ScrollBar垂直滾動(dòng)條產(chǎn)生垂直滾動(dòng)條Timer計(jì)時(shí)器用于定時(shí)DriveListBox驅(qū)動(dòng)器列表框DirListBox文件夾列表框FileListBox文件列表框Shape圖形Line線條Image圖象Data數(shù)據(jù)控件OLE控件基本控件55
VB通過控件箱提供了這些和用戶進(jìn)行交互的可視化部件,即控件。文本框(TextBox)標(biāo)簽(Label)命令按鈕(CommandButton)列表框(ListBox)組合框(ComboBox)圖象控件(Image)和圖片框(PictureBox)選項(xiàng)按鈕(OptionButton)、復(fù)選框CheckBox)與框架控件(Frame)滾動(dòng)條控件(HScrollBar和VScrollBar)定時(shí)器控件(Timer)常用控件561.文本框(TextBox)[功能]:用于接收用戶在框內(nèi)輸入的字符信息,或顯示由程序代碼產(chǎn)生的信息。[屬性]:Name(名稱):文本框的名稱,Text:文本屬性,該屬性值就是用戶在文本框輸入的內(nèi)容。(注意:TextBox無Caption屬性)PasswordChar:口令屬性。本屬性缺省值為空字符串,表示用戶由鍵盤輸入的字符,直接在文本框中顯示出來;如果該屬性值為某個(gè)字符,則文本框中輸入的內(nèi)容均顯示為該字符,用戶看不見實(shí)際輸入的字符,一般可用于口令輸入。(如屬性值設(shè)為*)
57MaxLength:最大長(zhǎng)度屬性。缺省為0,表示本文本框可以接收任意個(gè)字符。MultiLine:多行屬性。本屬性值若為“真”,則可輸入多行文本;否則只能輸入一行文本。該屬性不能在程序中改變Scrollbars:在文本框中添加水平和垂直滾動(dòng)條。0——無1——僅水平滾動(dòng)條2——僅垂直滾動(dòng)條3——均有Alignment:對(duì)齊屬性,有三種選擇0——(缺省值)文本左對(duì)齊。1——文本右對(duì)齊2——文本居中Left、top、Width、Height:相對(duì)于用戶區(qū)的左上角位置。文本框前提是MultiLine為True[屬性]:58[方法]:SetFocus:設(shè)置焦點(diǎn),通過本方法可使光標(biāo)指向指定的文本框。[事件]:Change:在文本框的Text屬性,即文本的內(nèi)容發(fā)生變 化時(shí),就觸發(fā)本事件;LostFocus:當(dāng)光標(biāo)離開文本框時(shí),引發(fā)本事件。KeyPress:當(dāng)焦點(diǎn)在文本框,并按下任何標(biāo)準(zhǔn)字符集的按鍵時(shí)會(huì)引發(fā)本事件。例:文本框文本框例:在窗體1中的文本框中輸入口令,單擊“判斷”按紐,如口令正確,顯示窗體2,否則,彈出提示錯(cuò)誤窗口,單擊“清空”按紐,清除文本框中的口令,并將焦點(diǎn)設(shè)置在其中以便下次錄入。60PrivateSubCommand1_Click()IfText1.Text="cpu"Then form2_2.Show
Else MsgBox"sorry!youcan'tentertheform2!"
EndIfEndSub密碼設(shè)置清空文本框,設(shè)置焦點(diǎn)PrivateSubCommand2_Click()Text1.Text=""Text1.SetFocusEndSub程序代碼61PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfText1.Text="cpu"ThenForm2_2.ShowElseMsgBox"sorry!youcan'tentertheform2!",,"文本框"EndIfEndIfEndSub另外一種觸發(fā)方式:622、標(biāo)簽(Label)[功能]:用于在窗體上增加文字說明。如用作窗體的狀態(tài)欄,或?yàn)槲谋究?、列表框等添加注釋文字說明等。(1)屬性
Name:標(biāo)簽名稱;
Caption:標(biāo)題屬性。本屬性值即為標(biāo)簽所顯示的文本內(nèi)容;
Alignment:對(duì)齊屬性。缺省值為0,將Caption文本左對(duì)齊;若設(shè)為1,為右對(duì)齊;設(shè)為2,則為居中;
AutoSize:大小自適應(yīng)屬性,當(dāng)取值為“True”時(shí),標(biāo)簽大小會(huì)隨實(shí)際顯示的內(nèi)容(Caption)而變化,缺省為“False”。
WordWrap:字折行屬性。取值為“True”時(shí),標(biāo)簽大小垂直擴(kuò)展,即標(biāo)題文字換行,為“False”時(shí),則水平拓展,缺省“False”,該屬性只有在AutoSize屬性為“True”時(shí)才有效。63(2)方法
Refresh:刷新;
Move:移動(dòng)。(3)事件
Click(單擊)、DblClick(雙擊)(很少用及)注意:標(biāo)簽得不到焦點(diǎn),所以無SetFocus方法例Label64PrivateSubCommand1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Label1.Left=Command1.LeftLabel1.Top=Command1.Top+Command1.HeightLabel1.WordWrap=FalseLabel1.AutoSize=TrueLabel1.BackColor=vbYellowLabel1.Visible=TrueLabel1.Caption="關(guān)閉窗體,結(jié)束應(yīng)用程序"EndSub設(shè)置顏色使標(biāo)簽可見文本不換行例:窗體FORM1上有一個(gè)命令按紐“Close”,當(dāng)鼠標(biāo)光標(biāo)移動(dòng)動(dòng)到該按鈕上時(shí),在按紐下方顯示由LABEL1提供的提示行:背景色為“淡黃色”,文字為“關(guān)閉窗體,結(jié)束應(yīng)用程序”。65PrivateSubCommand1_Click()UnloadMeEndSub除命令按鈕外,鼠標(biāo)在窗體其他位置移動(dòng)時(shí),并不出現(xiàn)標(biāo)簽提示PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Label1.Visible=FalseEndSub663、命令按鈕(CommandButton)[功能]:
用戶用鼠標(biāo)單擊命令按鈕,就表示要執(zhí)行一條命令,命令的具體功能則是由觸發(fā)的單擊事件過程中的程序代碼決定。(1)屬性Caption:標(biāo)題屬性。就是顯示在按鈕上的提示文字;Default:確定屬性。當(dāng)該屬性為“True”時(shí),按“回車鍵”等同于單擊此按鈕。在一個(gè)窗體中,也只能有一個(gè)命令按鈕的該屬性值為“True”.缺省值為“False”。Cancel:取消屬性。當(dāng)本屬性值設(shè)為“True”(真)時(shí),按“Esc”鍵即等同于單擊本按鈕;在一個(gè)窗體中,只能有一個(gè)命令按鈕的該屬性設(shè)置為“True”,缺省值為“False”;Enable:有效屬性,當(dāng)該屬性為“False”時(shí),命令按鈕無效,不能響應(yīng)用戶事件,缺省為“True”。67(2)方法SetFocus:設(shè)置焦點(diǎn)。設(shè)置為焦點(diǎn)的按鈕,標(biāo)題周圍將有一個(gè)邊框,用戶直接按“回車鍵”時(shí),將會(huì)觸發(fā)執(zhí)行該按鈕的單擊事件。(3)事件
Click,即鼠標(biāo)單擊。這是命令按鈕最基本、最重要的事件。書P23
例2-268例2-2一個(gè)使用命令按鈕的程序示例PrivateSubCommand1_Click()Label1.Caption="報(bào)效祖國(guó)"Command2.Enabled=TrueCommand2.SetFocusCommand1.Enabled=FalseEndSub使按鈕2變?yōu)榛顒?dòng)狀態(tài)PrivateSubCommand2_Click()Label1.Caption="努力學(xué)習(xí)"Command1.Enabled=TrueCommand1.SetFocusCommand2.Enabled=FalseEndSub使按鈕1變?yōu)榉腔顒?dòng)狀態(tài)使按鈕2具有焦點(diǎn)704、列表框(ListBox)[用途]:列出可供用戶選擇的項(xiàng)目列表。
[屬性]:List:表屬性。用于保存列表內(nèi)容。程序代碼中,可通過表屬性以及列表項(xiàng)序號(hào)實(shí)現(xiàn)對(duì)某具體列表項(xiàng)的訪問:
[對(duì)象名.]List(列表項(xiàng)序號(hào))
其中的對(duì)象名即為列表框的Name屬性值;列表項(xiàng)的序號(hào)從0開始,由上到下依次為0、1、2、3...
列表框中的列表項(xiàng)的添加方法:一是設(shè)計(jì)時(shí)在屬性窗口的LIST屬性值中直接添加,二是在程序運(yùn)行時(shí),在代碼中通過additem方法添加。ListCount:列表項(xiàng)數(shù)目。71ListIndex:列表項(xiàng)索引。其值為當(dāng)前選中的列表項(xiàng)的序號(hào),第一個(gè)列表項(xiàng)的序號(hào)為0,如果未選任何項(xiàng)目,則其值為-1;Text:列表項(xiàng)正文。其值為當(dāng)前選中的列表項(xiàng)的文本,它與List(ListIndex)相同;
即List1.Text=List1.List(ListIndex)Columns:列屬性。設(shè)置列表框中顯示的列表項(xiàng)的列數(shù)。該屬性缺省為0,只顯示一列文本。逐行顯示列表項(xiàng),可能有垂直滾動(dòng)條,取值為大于0的值時(shí),列表項(xiàng)可占多列顯示;Sorted:排序?qū)傩?。取值為“True”時(shí),各列表項(xiàng)將按字母表排序,取值為“False”時(shí),將不排序。[屬性]72[方法]:
AddItem
:添加列表項(xiàng)。使用下面的格式來添加:
[對(duì)象名.]AddItem<列表項(xiàng)文本>[,插入位置序號(hào)]
若不指定插入位置,則插入到列表末尾;
Clear
:刪除列表中所有列表項(xiàng)。
RemoveItem
:刪除指定列表項(xiàng)。用法如下:
[對(duì)象名.]RemoveItem刪除項(xiàng)序號(hào)[事件]:
雖然列表框可以響應(yīng)單擊Click和雙擊DblClick事件。但很少使用。例:列表框73
界面如圖所示,在文本框中輸入內(nèi)容,再單擊“增加”命令按紐,可以將文本框中的內(nèi)容添加至列表框中;對(duì)指定的列表框選項(xiàng),單擊“刪除”可將其刪除,同時(shí)及時(shí)更新列表項(xiàng)的總數(shù)。[屬性]舉例74PrivateSubCommand1_Click() List1.AddItemText1.Text Label3.Caption=List1.ListCountEndSubPrivateSubCommand2_Click()
List1.RemoveItemList1.ListIndex Label3.Caption=List1.ListCount Text1.Text="" Text1.SetFocusEndSub將文本框的內(nèi)容添加至列表框中將列表框指定的選項(xiàng)進(jìn)行刪除列表數(shù)目顯示在標(biāo)簽上75PrivateSubCommand3_Click()List1.ClearLabel3.Caption=List1.ListCountText1.Text=""Text1.SetFocusEndSubPrivateSubCommand4_Click()UnloadMeEndSub全部清除765、組合框(ComboBox)[功能]:將文本框和列表框結(jié)合在一起,在列表框中所選項(xiàng)目的文本會(huì)自動(dòng)填入文本框。[屬性]:
Style:外觀屬性。組合框的類型和功能由本屬性設(shè)定值決定,各設(shè)置值的功能為(見下一頁):
Text:文本屬性。其取值就是用戶從列表框中選定的文本內(nèi)容或直接輸入文本框中的內(nèi)容。注意:組合框并不會(huì)自動(dòng)地把用戶在文本框中輸入地內(nèi)容作為一個(gè)新列表項(xiàng)添加到列表框中,須使用如下語句:
ComoBoxname.AddItemComoBoxname.Text[方法]:同列表框。[事件]:0和2風(fēng)格的組合框可響應(yīng)Click(單擊)事件;風(fēng)格1的組合框可響應(yīng)DblClick(雙擊)事件;帶有文本框的0和1風(fēng)格的組合框在編輯文本時(shí)可引發(fā)Change事件。77ComboBox組合框Style屬性的三種選擇
常數(shù) 值 描述vbComboDropDown
0 (缺省值)下拉式組合框。包括一個(gè)下拉式列表和一個(gè)文本框??梢詮牧斜磉x擇或在文本框中輸入。vbComboSimple
1 簡(jiǎn)單組合框。文本框和列表框部分一直顯示在窗體上??梢詮牧斜碇羞x擇或直接文本框中輸入。應(yīng)根據(jù)實(shí)際列表項(xiàng)數(shù)目,調(diào)整控件大小。vbComboDrop-DownList
2 下拉式列表。這種樣式無文本框,不允許用戶直接輸入,僅允許從下拉式列表中選擇。78組合框的外觀79
界面如下,單擊列表框中的選項(xiàng),將之添加到組合框中,同時(shí)在組合框的文本框中輸入內(nèi)容,按回車也能添加至列表中。組合框列表框舉例PrivateSubCommand1_Click()Combo1.AddItemList1.TextEndSubPrivateSubCombo1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then Combo1.AddItemCombo1.Text Combo1.Text=""EndIfEndSub將輸入的內(nèi)容添加至組合框?qū)⒘斜砜蛑付ㄟx項(xiàng)移動(dòng)至組合框PrivateSubCommand2_Click()Combo1.RemoveItemCombo1.ListIndexEndSubPrivateSubCommand3_Click()Combo1.ClearEndSubPrivateSubCommand4_Click()UnloadMeEndSub816、圖象控件(Image)和圖片框(PictureBox)圖像控件(Image)[用途]:顯示來自圖形文件的圖像。[屬性]:Strech縮放屬性:為True時(shí),當(dāng)圖像的原始大小與控件大小不同時(shí),會(huì)縮放圖像來填充整個(gè)控件;為False時(shí),自動(dòng)控件大小來完整顯示圖片。BorderStyle邊框?qū)傩裕?時(shí)無邊框,1時(shí)有邊框。
Picture:圖片屬性,為要顯示的圖片的來源??稍谠O(shè)計(jì)時(shí)通過屬性窗口設(shè)置,也可在代碼中通過VB內(nèi)部函數(shù)設(shè)置:
imagename.Picture=LoadPicture(“c:\pict1.bmp”)[方法]:Move:移動(dòng)[事件]:Clickdbclick82[用途]:顯示圖形和文本,還可用于創(chuàng)建動(dòng)畫圖形。[屬性]:BorderStyle:邊框?qū)傩?。Align:對(duì)齊屬性,指圖片框在窗體上的位置。有無、上、下、左和右五種選擇。
Picture:圖片屬性。設(shè)置同IMAGE控件AutoSize:為True時(shí),當(dāng)圖片大小與控件大小不同時(shí),會(huì)自動(dòng)改變控件大小來與圖像一致,為False時(shí),則不會(huì)。[方法]:Move:移動(dòng);Print:打印Cls:清空?qǐng)D片框[事件]:Click、dbclick注意:PictureBox控件可作為控件容器,在其中放置如命令按紐、文本框等其它控件。舉例圖片框控件(PictureBox)837.選項(xiàng)按鈕(OptionButton)、復(fù)選框(CheckBox)與框架控件(Frame)單選按鈕(OptionButton)[用途]:從一組互斥的選項(xiàng)中選擇一個(gè)。[屬性]:
Caption:標(biāo)題屬性。
Value:取值屬性。單選按鈕選中時(shí),該屬性值為“True”,否則為“False”[方法]:Move、Refresh、Setfocus等[事件]:Click注意:一般情況下,在一組單選按鈕中可設(shè)置一個(gè)按鈕為“缺省”按鈕,即它的Value屬性初始狀態(tài)為“True”,根據(jù)這個(gè)設(shè)定設(shè)置整個(gè)應(yīng)用程序的初始狀態(tài)。84復(fù)選框(CheckBox)[用途]:從一組選項(xiàng)中選擇一個(gè)或多個(gè)。[屬性]:
Caption:標(biāo)題屬性。
Value:取值屬性,表示復(fù)選框的狀態(tài),有三個(gè)選擇(0——未選中、1——選中、2——當(dāng)前不能訪問),注意與單選按紐不同。Alignment:對(duì)齊屬性。[方法][事件]:同單選按紐。85
在窗體上可以容納若干個(gè)選項(xiàng)組??衫每蚣芸丶蚯耙咽黾暗膱D片框控件,作為選項(xiàng)組的“包容器”,把各個(gè)選項(xiàng)組區(qū)分開來[用途]:作為控件容器,將控件分組。[屬性]:
Caption:標(biāo)題屬性。[方法]:Move:移動(dòng)[事件]:Click:?jiǎn)螕糇⒁猓喝舸绑w上有互不相干的多組單選按鈕,未防止選擇時(shí),他們之間相互干擾,必須將他們分組,分別放置在不同的框架(Frame)中。步驟:1先在窗體上拖放一個(gè)框架控件,并選定該框架為當(dāng)前對(duì)象;2在框架中直接繪制該組中的各個(gè)按紐控件;3若分組成功,則拖動(dòng)框架時(shí),包括其內(nèi)部的控件一起移動(dòng)。復(fù)選框框架(Frame)86
界面如圖所示,在窗體上使用框架分別建立一組復(fù)選按鈕和二組單選按鈕,用戶在進(jìn)行選擇時(shí),文字的字體字號(hào)和風(fēng)格也能發(fā)生相應(yīng)的變化。例2-4:87PrivateSubCheck1_Click()IfCheck1.Value=1ThenText1.FontItalic=TrueElseIfCheck1.Value=0ThenText1.FontItalic=FalseEndIfEndSub斜體粗體PrivateSubCheck2_Click()IfCheck2.Value=1ThenText1.FontBold=TrueElseIfCheck2.Value=0ThenText1.FontBold=FalseEndIfEndSub88[程序說明]:因?yàn)閺?fù)選框的單擊結(jié)果有兩種,所以在程序中使用了判斷結(jié)構(gòu)。而單選按鈕則不存在這種情況,單擊就是選定。PrivateSubOption1_Click()Text1.FontSize=12EndSubPrivateSubOption2_Click()Text1.FontSize=14EndSubPrivateSubOption3_Click()Text1.FontSize=16EndSubPrivateSubOption4_Click()Text1.FontName="宋體"EndSubPrivateSubOption5_Click()Text1.FontName="隸書"EndSubPrivateSubOption6_Click()Text1.FontName="黑體"EndSub898、滾動(dòng)條控件(HScrollBar和VScrollBar)[用途]:滾動(dòng)條主要用于列有較長(zhǎng)項(xiàng)目或者大量信息的地方。使用戶在較小的區(qū)域中瀏覽較長(zhǎng)的項(xiàng)目和信息。(用于需要瀏覽信息,但又不支持滾動(dòng)功能的控件。)(1)屬性Value:對(duì)應(yīng)于滾動(dòng)框在滾動(dòng)條中的相對(duì)位置。最小:水平:左;垂直:上Max和Min:設(shè)定滾動(dòng)條Value屬性的取值范圍;(缺省:0——32767)LargeChange:在滾動(dòng)條的空白區(qū)域單擊鼠標(biāo),Value的變化量SmallChange:鼠標(biāo)單擊滾動(dòng)條兩端箭頭時(shí),Value的變化量(2)方法
Move(3)事件Change:滾動(dòng)條不支持單擊事件,當(dāng)Value值發(fā)生變化時(shí),觸發(fā)本事件。舉例90例:通過紅,綠,藍(lán)三基色合成各種顏色91PrivateSubchangecolor()Text1.BackColor=RGB(HSbred.Value,HSbgreen.Value,HSbblue.Value)EndSub定義通用過程調(diào)用過程Changecolor在標(biāo)簽上顯示此時(shí)紅綠藍(lán)三色的初值,均為0PrivateSubForm_Load()changecolorLabel1.Caption="紅"&HSbred.ValueLabel2.Caption="綠"&HSbgreen.ValueLabel3.Caption="蘭"&HSbblue.ValueEndSub92PrivateSubHSbblue_Change() Label3.Caption="蘭"&HSbblue.Value changecolorEndSub改變文本框顏色顯示PrivateSubHSbgreen_Change() Label2.Caption="綠"&HSbgreen.Value changecolorEndSubPrivateSubHSbred_Change() Label1.Caption="紅"&HSbred.Value changecolorEndSub939、定時(shí)器控件(Timer)[用途]:通過設(shè)置時(shí)間間隔,當(dāng)經(jīng)過設(shè)定的時(shí)間后,自動(dòng)觸發(fā)該控件的Timer事件,執(zhí)行其中的代碼程序。[屬性]:Interval:以毫秒為單位的時(shí)間間隔。取值為0-65535。0表示不起作用。Enable:為True時(shí),打開計(jì)時(shí)器,開始計(jì)時(shí),根據(jù)Interval值,觸發(fā)Timer事件;為False時(shí),關(guān)閉計(jì)時(shí)器。[事件]:Timer:計(jì)時(shí)器唯一支持的事件,當(dāng)設(shè)定時(shí)間間隔到達(dá)后,觸發(fā)。注意:窗體上的計(jì)時(shí)器,在運(yùn)行時(shí)是不可見。Timer94例:窗體上有一標(biāo)簽,單擊“開始”按紐后,該標(biāo)簽在窗體上水平滾動(dòng)。PrivateSubTimer1_Timer()IfLabel1.Left+Label1.Width>Form1.WidthThenLabel1.Move0ElseLabel1.MoveLabel1.Left+50EndIfEndSubPrivateSubCommand2_Click()Timer1.Enabled=FalseEndSubPrivateSubCommand1_Click()Timer1.Enabled=TrueEndSub962.3制作菜單2.3.1菜單概述2.3.2使用菜單編輯器2.3.2界面設(shè)計(jì)程序示例2.3.4使用幫助97菜單概述菜單條/菜單欄:位于窗體的標(biāo)題欄下,包括菜單的標(biāo)題;菜單/下拉式菜單:?jiǎn)螕舨藛螛?biāo)題,出現(xiàn)的命令列表;菜單項(xiàng):菜單命令;子菜單:從一個(gè)菜單項(xiàng)分支出來的菜單;彈出式菜單:右鍵快捷菜單。98打開菜單編輯器對(duì)話框:“工具”“菜單編輯器”標(biāo)題:菜單標(biāo)題,直接顯示在菜單中;若為菜單分隔線,則標(biāo)題為“-”,如要設(shè)置菜單訪問鍵,在菜單標(biāo)題中加上“&”+字母,運(yùn)行時(shí),顯示為字母,按Alt+字母可打開該菜單。名稱:菜單標(biāo)識(shí),不可省略快捷鍵:
一般為Ctrl+字母,指直接執(zhí)行該菜單項(xiàng)的鍵盤快
捷鍵。復(fù)選屬性:指定可切換的菜單項(xiàng)的開關(guān)狀態(tài)有效屬性:缺省為“True”,若為“False”則該菜單項(xiàng)變?yōu)?/p>
灰色,不能響應(yīng)事件可見屬性:缺省為“True”,若為“False”則該菜單項(xiàng)包括其子菜單在菜單欄上均不可見箭頭:
菜單項(xiàng)的升降級(jí)和次序的調(diào)整VB將菜單也視為控件對(duì)象,若要單擊菜單執(zhí)行某命令,則須在代碼窗口編輯該菜單對(duì)象的Click事件中的。菜單編輯器99彈出式菜單
彈出式菜單的建立和下拉菜單一樣,都是通過菜單編輯器來完成的,但彈出式菜單要將菜單的Visible屬性設(shè)置為“False”,并需要通過增加程序代碼來實(shí)現(xiàn)。例:設(shè)置窗體的彈出式菜單。[程序代碼]:
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenForm1.PopupMenuhhEndSub第三章VisualBasic語言基礎(chǔ)101
了解過程和模塊的概念
掌握程序書寫規(guī)范和程序注釋方法
掌握各種數(shù)據(jù)的定義、使用及表示范圍
掌握各種運(yùn)算符和表達(dá)式的使用
掌握常用的標(biāo)準(zhǔn)函數(shù)教學(xué)要求1023.1VB程序代碼的組織結(jié)構(gòu)3.2代碼行的書寫規(guī)則3.3VB的數(shù)據(jù)類型3.4運(yùn)算符與表達(dá)式3.5VB公共函數(shù)教學(xué)內(nèi)容1033.1VB程序代碼的組織結(jié)構(gòu)VB程序是由界面和程序代碼兩部分組成,而程序代碼又是由說明部分和過程兩部分組成的,要編寫控制程序執(zhí)行的代碼,必須先了解過程這個(gè)概念。1043.1.1過程
所謂過程,就是由Sub開頭,EndSub結(jié)尾的,包含若干條語句的有特定書寫格式的代碼組合。
根據(jù)過程執(zhí)行的方式,可分為事件過程和通用過程兩類。
105事件過程定義:由事件驅(qū)動(dòng)而執(zhí)行的,用于響應(yīng)用戶或系統(tǒng)引發(fā)的事件的代碼過程。如窗體的Load過程、命令按鈕的Click過程等。特點(diǎn):缺省情況下,事件過程是Private的,即僅在所屬的窗體范圍內(nèi)有效。存儲(chǔ):事件過程是存儲(chǔ)在窗體模塊文件中,擴(kuò)展名為.frm注意:事件過程的過程名及參數(shù)是系統(tǒng)定義好的,其參數(shù)不得隨意改變。106通用過程:定義:可以被多個(gè)窗體和過程調(diào)用執(zhí)行的代碼過程。特點(diǎn):缺省情況下,通用過程是Public的,即可被所有窗體共享,但也可以定義成Private。存儲(chǔ):在窗體中定義的通用過程直接存儲(chǔ)在窗體模塊文件中;在標(biāo)準(zhǔn)模塊中定義的通用過程是存儲(chǔ)在擴(kuò)展名為.Bas的標(biāo)準(zhǔn)模塊文件中。注意:通用過程的過程名及參數(shù)由用戶自行定義。1073.1.2模塊
模塊是組織過程代碼的一種結(jié)構(gòu)。VB提供了三種類型的模塊:窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。
窗體模塊:和每個(gè)窗體相對(duì)應(yīng)的模塊,包含窗體及其中所有控件的屬性設(shè)置、相關(guān)說明和所有事件過程。
標(biāo)準(zhǔn)模塊:存放為多個(gè)窗體所共享的通用過程的獨(dú)立代碼模塊,不屬于任何一個(gè)窗體,主要在大型應(yīng)用程序中使用,保存在擴(kuò)展名為.Bas的文件中。
類模塊:存放開發(fā)者自行創(chuàng)建的類的屬性、方法等。
108VB應(yīng)用程序窗體文件標(biāo)準(zhǔn)模塊文件聲明部分事件過程通用過程全局聲明部分模塊聲明部分通用過程類模塊文件1093.2VB程序的書寫規(guī)范和程序注釋一、語句VB程序的最基本的成分
格式:<語句定義符>[語句體]
按行書寫;
一個(gè)語句可通過續(xù)行符號(hào)“
_”(一個(gè)空格加一個(gè)下劃線)分成多行寫;
多個(gè)語句也可以通過分行符號(hào)“:”(冒號(hào))寫在一行上。110二、書寫規(guī)范字母無大小寫區(qū)分一行代碼輸入完畢,按回車鍵進(jìn)入下一行一般采取階梯型書寫格式,使程序可讀性好,便于查找錯(cuò)誤(嚴(yán)格執(zhí)行)代碼中除了中文字外,所有的符號(hào)都必須在英文狀態(tài)下輸入三、程序注釋語句[格式一]:Rem<注釋字符>[格式二]:’<注釋字符>[說明]:給程序加注釋,增強(qiáng)程序的可讀性,該語句為非執(zhí)行語句。1113.3VB數(shù)據(jù)類型
3.3.1數(shù)據(jù)類型3.3.2常量3.3.3變量112取值范圍見P43表3-13.3.1數(shù)據(jù)類型
Integer:整型數(shù),2個(gè)ByteLong:長(zhǎng)整型數(shù),4個(gè)ByteSingle:單精度數(shù),4個(gè)Byte7位有效位Double:雙精度數(shù),8個(gè)Byte15位有效位Currency:貨幣型,8個(gè)Byte精度高,15個(gè)整數(shù)和4個(gè)小數(shù)Byte:Byte型數(shù),1個(gè)Byte(一般存儲(chǔ)二進(jìn)制信息)Boolean:邏輯型,2個(gè)ByteTrue或FalseString:字符串型,分為定長(zhǎng)和不定長(zhǎng)兩種Date:日期型,8個(gè)ByteObject:對(duì)象型,4個(gè)Byte保存對(duì)某對(duì)象的引用(內(nèi)存地址)Variant:變體型,16個(gè)Byte
存放無小數(shù)的整數(shù)存放有小數(shù)的實(shí)數(shù)1133.3.2常量(Constant)指在程序運(yùn)行過程中值保持不變的量,分為直接常量和符號(hào)常量?jī)煞N。1、數(shù)值常量由正負(fù)號(hào)、數(shù)字和小數(shù)點(diǎn)組成,正數(shù)的正號(hào)可以省略科學(xué)計(jì)數(shù)法格式:<尾數(shù)>e/d<指數(shù)>說明:冪為10,e為單精度,d為雙精度八進(jìn)制和十六進(jìn)制常量表示無符號(hào)整數(shù)八進(jìn)制:&O十六進(jìn)制:&H12,-3,32767174567,-4567891.5,-7.891,1e6,2.33455e-33.1415926535,1.2d4&O137,&H1271142、字符常量用雙引號(hào)將一串字符括起來,構(gòu)成字符常量字符長(zhǎng)度:字符串中字符的個(gè)數(shù),不包括雙引號(hào)字符串的長(zhǎng)度最多可達(dá)65535個(gè)注意區(qū)別空格串和空串輸入雙引號(hào)必須用“””字符串常量區(qū)分大小寫,如字符串"A"和字符串"a"是兩個(gè)不同的常量字符串比較:從字符串的左端開始,一一對(duì)應(yīng)比較至不同的字符,字符的ASCII碼值大的字符串大,ASCII碼值小的字符串小。
如:“歡迎進(jìn)入VB”,“VisualBasic”,“123”,“A”1153、邏輯常量只有兩個(gè)取值,True和False無界定符Vb中通常用0表示False,其他數(shù)值均表示True4、日期時(shí)間型常量即可以表示日期,也可以表示時(shí)間一般表示形式是mm/dd/yy,hh:mm:ss用#作為界定符例:#1/2/1999##1999-1-2##Jan2,1999##January2,1999##12:00:00AM##12:00:00PM##8:20:20PM##2:00:00PM#都合法116符號(hào)常量是指以符號(hào)形式,即常量名來標(biāo)識(shí)的常量若一個(gè)常量在程序中使用頻率較高,可以將其定義為一個(gè)符號(hào)常量,如圓周率常量名長(zhǎng)度不超過255個(gè)字符,由字母開頭,只能包含字母、數(shù)字和下劃線,且不區(qū)分大小寫符號(hào)常量必須先說明后使用符號(hào)常量117說明語句格式:[Public|Private]Const<常量名>[AsType]=<表達(dá)式>在模塊通用聲明中,Public和Private用于定義常量的使用范圍,缺省為Private(窗體模塊級(jí))在窗體模塊中不能用Public定義全局符號(hào)常量表達(dá)式中不能包括函數(shù),可使用除IS外所有算術(shù)和邏輯運(yùn)算符,也可以使用其他常量例:ConstpiasSingle=3.14159PrivateConstch=“CPU”PublicConstxasInteger=3*5’在標(biāo)準(zhǔn)模塊中定義全局級(jí)常量,但若出現(xiàn)在窗體的通用聲明中則出錯(cuò)。注意符號(hào)常量定義后,在程序中只能讀不能修改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年無人機(jī)探礦勘察合同示范文本3篇
- 2025年度創(chuàng)意產(chǎn)業(yè)園區(qū)場(chǎng)地空地租賃合同4篇
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)場(chǎng)地施工與農(nóng)業(yè)技術(shù)支持合同4篇
- 2025年度稅務(wù)局馬辦機(jī)房搬遷及綜合布線服務(wù)項(xiàng)目合同3篇
- 2025年暑期青少年素質(zhì)拓展夏令營(yíng)招生服務(wù)合同3篇
- 二零二五年度財(cái)務(wù)報(bào)表審核與披露合同3篇
- 二零二五年鋼筋工程綠色建筑評(píng)價(jià)標(biāo)準(zhǔn)執(zhí)行合同3篇
- 2025年度物流倉儲(chǔ)一體化服務(wù)合同范本4篇
- 個(gè)人房產(chǎn)抵押融資合同2024版
- 二零二五版?zhèn)€人房屋貸款利率變動(dòng)合同3篇
- 新版DFMEA基礎(chǔ)知識(shí)解析與運(yùn)用-培訓(xùn)教材
- 制氮機(jī)操作安全規(guī)程
- 衡水市出租車駕駛員從業(yè)資格區(qū)域科目考試題庫(全真題庫)
- 護(hù)理安全用氧培訓(xùn)課件
- 《三國(guó)演義》中人物性格探析研究性課題報(bào)告
- 注冊(cè)電氣工程師公共基礎(chǔ)高數(shù)輔導(dǎo)課件
- 土方勞務(wù)分包合同中鐵十一局
- 乳腺導(dǎo)管原位癌
- 冷庫管道應(yīng)急預(yù)案
- 司法考試必背大全(涵蓋所有法律考點(diǎn))
- 公共部分裝修工程 施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論