




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VB程序設(shè)計(jì)杭州師范大學(xué)信息科學(xué)與工程學(xué)院
陶國(guó)芳
28865149Q:1203800073教學(xué)網(wǎng)站:http://
作業(yè)網(wǎng)站:/index1.asp1教學(xué)目的要求:了解VB的發(fā)展過(guò)程和特點(diǎn)掌握VB集成開發(fā)環(huán)境理解面向?qū)ο蟪绦蛟O(shè)計(jì)方法掌握VB工程開發(fā)設(shè)計(jì)步驟教學(xué)重點(diǎn)
VB集成開發(fā)環(huán)境
VB工程開發(fā)設(shè)計(jì)步驟面向?qū)ο蟪绦蛟O(shè)計(jì)方法第1章概述2教學(xué)方法:大屏幕投影演示時(shí)間安排:
2.5學(xué)時(shí)
教學(xué)難點(diǎn):面向?qū)ο蟪绦蛟O(shè)計(jì)中對(duì)象、屬性、方法、事件等概念31.1VB的發(fā)展過(guò)程和特點(diǎn)一、發(fā)展過(guò)程:1991年:VB1.01991年秋:VB2.01993年:VB3.01995年:VB4.01997年:VB5.01998年:VB6.0Windows操作系統(tǒng)產(chǎn)生初期,人們只能利用WindowsAPI(應(yīng)用程序接口)的一千多個(gè)函數(shù)編寫程序。微軟公司就開發(fā)了當(dāng)今流行的MicrosoftVisualStudio工具套件,VB就是其中一種。4VB6.0版本學(xué)習(xí)版:LearningVB的基礎(chǔ)版本,可開發(fā)WINDOWS或WINDOWSNT程序。內(nèi)容包括所有內(nèi)部控制以及網(wǎng)絡(luò)、數(shù)據(jù)綁定控件。專業(yè)版:Professional為專業(yè)編程人員開發(fā)功能強(qiáng)大的分布式應(yīng)用程序。包括專業(yè)版的全部功能,同時(shí)具有自動(dòng)化管理器、部件管理器及數(shù)據(jù)庫(kù)管理工具。企業(yè)版:Enterprise為專業(yè)編程人員提供的一套功能完備工具。包括學(xué)習(xí)版的全部功能和ActiveX控件、Internet控件開發(fā)工具、動(dòng)態(tài)HTML頁(yè)面設(shè)計(jì)。5二VB主要功能特點(diǎn)VB是面向?qū)ο蟮目梢暬绦蛟O(shè)計(jì)工具_(dá)可視化結(jié)構(gòu)化的程序設(shè)計(jì),事件驅(qū)動(dòng)的編程機(jī)制_用事件執(zhí)行對(duì)象的操作友好的VB集成開發(fā)環(huán)境支持多種數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)通過(guò)ActiveX技術(shù),可以使用其他程序提供的功能支持動(dòng)態(tài)數(shù)據(jù)交換(DDE)、動(dòng)態(tài)鏈接庫(kù)(DLL)、對(duì)象的鏈接與嵌入(OLE)技術(shù)及ActiveX技術(shù)完善的聯(lián)機(jī)幫助61.2VB6.0集成開發(fā)環(huán)境VB6.0啟動(dòng):71.2.1VisualBasic6.0的集成開發(fā)環(huán)境主窗口
VisualBasic6.0集成開發(fā)環(huán)境(IDE),提供了整套工具,方便用戶開發(fā)應(yīng)用程序。它在一個(gè)公共環(huán)境里集成了許多不同的功能,例如設(shè)計(jì)、編輯、編譯和調(diào)試。下面介紹VisualBasic6.0的集成開發(fā)環(huán)境。當(dāng)啟動(dòng)VisualBasic6.0時(shí),可以見到如圖1-1所示的窗口,其中會(huì)提示選擇要建立的工程類型。
圖1-1VisualBasic6.0中可以建立的工程類型
8工具箱窗體設(shè)計(jì)器窗口代碼編輯器窗口立即窗口標(biāo)題欄工具欄菜單欄工程資源編輯器窗口窗體布局窗口屬性窗口91.2.2工具箱
系統(tǒng)啟動(dòng)后缺省的General工具箱就會(huì)出現(xiàn)在屏幕左邊,其中每個(gè)圖標(biāo)表示一種控件,共有20個(gè)常用“部件”(即控件),如圖1-4所示。
指針(選擇對(duì)象)
————
—————
圖片框(PictureBox)
標(biāo)簽(Label)
——————
——————文本框(TextBox)
框架(Frame)
——————
——
命令按鈕(CommandButton)
復(fù)選框(CheckBox)
———————
單選按鈕(OptionButton)
組合框(ComboBox)
———
———————
列表框(ListBox)
水平滾動(dòng)條(HscrollBar)——
—————
垂直滾動(dòng)條(VscrollBar)
定時(shí)器(Timer)
—————
——
驅(qū)動(dòng)器列表框(DriveListBox)
目錄列表框(DirListBox)
—
————
文件列表框(FileListBox)
形狀(Shape)
——————
—————————
畫線(Line)
圖像框(Image)
—————
———————
數(shù)據(jù)庫(kù)(Data)
圖1-4
VisualBasic工具箱中的常用控件類型101.2.3工具箱用戶可以將不在工具箱中的其他ActiveX控件放到工具箱中。通過(guò)“工程”菜單中的“部件”命令或從“工具箱”快捷菜單中選定“部件”選項(xiàng)卡,就會(huì)顯示系統(tǒng)安裝的所有ActiveX控件清單。要將某控件加入到當(dāng)前選項(xiàng)卡中,需單擊要選定控件前面的方框,如圖1-5所示,然后單擊“確定”按鈕,選定的ActiveX控件就會(huì)添加到工具欄中。
圖1-5“部件”對(duì)話框
111.2.7代碼編輯窗口
在設(shè)計(jì)模式中,通過(guò)雙擊窗體或窗體上的任何對(duì)象或單擊“工程資源管理器”窗口中的“查看代碼”按鈕都可打開代碼編輯器窗口。代碼編輯器是輸入應(yīng)用程序代碼的編輯器,應(yīng)用程序的每個(gè)窗體或標(biāo)準(zhǔn)模塊都有一個(gè)單獨(dú)的代碼編輯器窗口,如圖1-10所示。
圖1-10代碼編輯器窗口
121.2.8立即窗口
例如:(1)在立即窗口中使用賦值符給變量賦值。即輸入:X=3.14:Y=2:Z=30:P=True:K=False(2)使用“?表達(dá)式”或“Print表達(dá)式”輸出其表達(dá)式的值。操作如下:
?X+Y5.14 '輸出結(jié)果
PrintInt(X)+Y/24 '輸出結(jié)果
?NotPOrKAndPOrY>ZFalse '輸出結(jié)果
131.2.8立即窗口
在VisualBasic集成環(huán)境中,運(yùn)行“視圖/立即窗口”命令或按Ctrl+G組合鍵即可打開如圖1-11所示的窗口?!傲⒓础贝翱谑荲isualBasic所提供的一個(gè)系統(tǒng)對(duì)象,稱為Debug對(duì)象,作為調(diào)試程序使用。它只有方法,不具備任何事件和屬性。通常使用是Print方法,使用格式為:Debug.print[輸出項(xiàng)列表]例如:Debug.print“VB程序設(shè)計(jì)”運(yùn)行后在立即窗口輸出:VB程序設(shè)計(jì)在設(shè)計(jì)狀態(tài)可以在立即窗口中進(jìn)行一些簡(jiǎn)單的命令操作,如變量賦值,用“?”或Print(兩者等價(jià))輸出一些表達(dá)式的值。
圖1-11立即窗口
141.2.8立即窗口
操作結(jié)果如圖1-12所示。
此外,VisualBasic6.0中還有2個(gè)非常有用的附加窗口:“本地”和“監(jiān)視”窗口,它們都是為調(diào)試應(yīng)用程序提供的,本地窗口和監(jiān)視窗口只在運(yùn)行工作模式下才有效。
圖1-12在“立即”窗口中的操作實(shí)例
15標(biāo)題欄可顯示當(dāng)前VB的工作模式:
設(shè)計(jì)模式:可進(jìn)行界面設(shè)計(jì)和代碼編寫
運(yùn)行模式:運(yùn)行程序
中斷模式:程序運(yùn)行暫時(shí)中斷,可編輯代碼,但不可設(shè)計(jì)界面16工程資源管理窗口一個(gè)工程由多種類型的文件組成,如工程文件、窗體文件、標(biāo)準(zhǔn)模塊文件等,在工程資源管理窗口中以樹形目錄結(jié)構(gòu)的形式列出了當(dāng)前工程中包括的所有文件。工程文件(.vbp)
窗體文件(.frm)
標(biāo)準(zhǔn)模塊文件(.bas)
類模塊文件(.cls)工程組文件(.vbg)資源文件(.res)查看對(duì)象切換文件夾查看代碼17屬性窗口屬性窗口主要對(duì)窗體和控件設(shè)置對(duì)象下拉列表框可列出當(dāng)前所有對(duì)象選項(xiàng)卡屬性說(shuō)明屬性列表框?qū)傩灾?8代碼編輯器窗口對(duì)象下拉列表框事件過(guò)程下拉列表框過(guò)程查看自動(dòng)列出成員特性代碼窗口窗口拆分欄用于顯示和編輯代碼全部過(guò)程查看19傳統(tǒng)過(guò)程化應(yīng)用程序從第一行開始執(zhí)行,并按照預(yù)定的路徑執(zhí)行,用戶無(wú)法改變程序的流程事件驅(qū)動(dòng)的應(yīng)用程序代碼不是按預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同事件時(shí)執(zhí)行不同的代碼段.事件觸發(fā)由用戶觸發(fā)由操作系統(tǒng)觸發(fā)由其它應(yīng)用程序的消息觸發(fā)采用面向?qū)ο?、事件?qū)動(dòng)方式的編程,程序員不需要考慮精確次序執(zhí)行的每一步驟,而只需編寫響應(yīng)用戶動(dòng)作的程序即可,工作量相對(duì)較少。用VB編程,實(shí)際上是與一組標(biāo)準(zhǔn)對(duì)象進(jìn)行交互的過(guò)程。1.3面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο?對(duì)象+分類(classification)+繼承+消息通信(communitionwithmessage)20對(duì)象是系統(tǒng)中的基本運(yùn)行實(shí)體,是代碼和數(shù)據(jù)的集合.VB中,對(duì)象分系統(tǒng)定義,如窗體、菜單等用戶定義對(duì)象是具有特殊屬性(數(shù)據(jù))和行為方式(方法)的實(shí)體。建立對(duì)象后,其操作與該對(duì)象有關(guān)的屬性、事件和方法來(lái)描述。類是封裝數(shù)據(jù)和隱藏?cái)?shù)據(jù)的工具,是一組用來(lái)定義對(duì)象的相關(guān)過(guò)程和數(shù)據(jù)的集合.一個(gè)對(duì)象就是類的一個(gè)實(shí)例(例如:卡車是汽車類的一個(gè)對(duì)象)類具有封裝性、繼承性和多態(tài)性特征卡車和小轎車都有輪胎、發(fā)動(dòng)機(jī)等共有屬性-繼承性但是它們的外觀又不同-多態(tài)性不同的汽車組成一個(gè)汽車類-封裝性21屬性是一個(gè)對(duì)象的特性,不同的對(duì)象有不同的屬性。對(duì)象常見的屬性:標(biāo)題(Caption)名稱(Name)顏色(Color)字體(Font)是否可見(Visible)22通過(guò)修改對(duì)象的屬性,可以改變對(duì)象的外觀與功能。在屬性窗口上設(shè)置在程序代碼中用賦值語(yǔ)句設(shè)置屬性設(shè)置格式:<對(duì)象名>.<屬性名>=<屬性值>例:cmdOk.Caption=“確定”Form1.Caption=“求兩數(shù)和”23事件在VB中,系統(tǒng)為每一對(duì)象預(yù)先定義好一系列的事件,如:?jiǎn)螕?Click)
雙擊(DblClick)
裝入事件(Load)
改變事件(Change)
鼠標(biāo)移動(dòng)事件(MouseMove)
獲取焦點(diǎn)事件(GotFocus)是指發(fā)生在對(duì)象上的事情。事件過(guò)程的一般格式:PrivateSub<對(duì)象名>_<事件名>([<參數(shù)表>])<程序代碼>EndSub例:PrivateSubCommand1_Click()Form1.BackColor=vbRedEndSub24方法方法是面向?qū)ο蟪绦蛟O(shè)計(jì)中所特有的,是一種特殊的過(guò)程和函數(shù),可供用戶直接調(diào)用.如:打印(Print)方法、顯示窗體(Show)方法、清除(Cls)方法、移動(dòng)(Move)方法對(duì)象調(diào)用格式:[<對(duì)象名>.]<方法名>[<參數(shù)名>]是指對(duì)象要執(zhí)行的動(dòng)作。251.4VB程序設(shè)計(jì)的基本步驟程序設(shè)計(jì)的一般過(guò)程分析問(wèn)題設(shè)計(jì)算法繪制流程圖編制程序調(diào)試程序26新建一個(gè)工程設(shè)計(jì)用戶界面編寫事件過(guò)程及通用過(guò)程代碼保存、調(diào)試、運(yùn)行,形成可執(zhí)行文件以求兩數(shù)和的程序?yàn)槔f(shuō)明VB工程的建立全過(guò)程VB程序設(shè)計(jì)的基本步驟27新建工程途徑有兩種:?jiǎn)?dòng)VB后,在系統(tǒng)顯示的“新建工程”對(duì)話框的“新建”選項(xiàng)卡中選擇“標(biāo)準(zhǔn)EXE”,然后單擊“打開”按鈕。在“文件”菜單中選擇“新建工程”命令,然后在“新建工程”對(duì)話框中選擇“標(biāo)準(zhǔn)EXE”,然后單擊“打開”按鈕。28設(shè)計(jì)界面設(shè)計(jì)對(duì)象控件的布局改變Caption屬性的值為“求和”改變對(duì)象標(biāo)簽、命令按鈕的Caption屬性的值改變文本框的屬性Text為0窗體標(biāo)簽命令按鈕文本框29編寫代碼三種方式:在窗體上雙擊命令按鈕在工程管理器窗口單擊“查看代碼”按鈕在視圖菜單中選擇“代碼窗口”命令,或單擊“工具欄”上的“代碼窗口”按鈕30運(yùn)行與調(diào)試工程選擇“運(yùn)行”菜單中的“啟動(dòng)”命令,或單擊工具欄中的“啟動(dòng)”按鈕,或按F5鍵,即可運(yùn)行。在文本框中輸入數(shù)據(jù),然后點(diǎn)擊“求和”按鈕,即可得到兩數(shù)的和,顯示在文本框中。計(jì)算結(jié)果31保存工程程序代碼檢查沒有錯(cuò)誤后,可保存工程。選擇“文件”菜單中的“保存工程”或“工程另存為”命令,或單擊工具欄中的“保存工程”按鈕。若是第一次保存,則系統(tǒng)彈出“文件另存為”對(duì)話框。在“文件對(duì)話框”中選擇合適的文件夾后,點(diǎn)擊“保存”即可。文件名文件夾文件名后綴保存窗體文件后,系統(tǒng)會(huì)彈出“工程另存為”對(duì)話框,同樣選擇文件夾,點(diǎn)擊“保存”32編譯工程形成可執(zhí)行文件編譯成.exe文件,可脫離VB環(huán)境運(yùn)行選擇“文件”菜單中的“生成可執(zhí)行文件”,則系統(tǒng)彈出“生成工程”對(duì)話框。在“生成文件對(duì)話框”中選擇合適的文件夾,輸入文件名點(diǎn)后,擊“確定”即可。33輸入代碼規(guī)則:每行不超過(guò)1023個(gè)字符一行寫多個(gè)語(yǔ)句用“:”隔開可用續(xù)行符“_”在下一行接著寫不分大小寫,關(guān)鍵字及標(biāo)準(zhǔn)函數(shù)自動(dòng)處理成第一母大寫注釋行用“‘”開頭VB程序結(jié)構(gòu):窗體模塊標(biāo)準(zhǔn)模塊類模塊34<>為必選參數(shù)表示符。尖括號(hào)中的是中文提示說(shuō)明,由使用者根據(jù)問(wèn)題的需要提供具體參數(shù)。如果缺少必選參數(shù),則語(yǔ)句發(fā)生語(yǔ)法錯(cuò)誤。
[]為可選參數(shù)表示符。方括號(hào)中的內(nèi)容選與不選由用戶根據(jù)具體情況決定,且都不影響語(yǔ)句本身的語(yǔ)法。如方括號(hào)中的內(nèi)容省略,則VisualBasic會(huì)使用該參數(shù)的缺省值。
I為多個(gè)取一表示符。豎線分隔多個(gè)選擇項(xiàng),必須選擇其中之一。
()表示括起多個(gè)選擇項(xiàng)。
,…表示同類項(xiàng)目的重復(fù)出現(xiàn)。格式約定35課后分析:面向?qū)ο蟪绦蛟O(shè)計(jì)中對(duì)象、屬性、方法、事件、類等概念的理解隨后續(xù)課程的學(xué)習(xí)而逐漸加深
361.4.1窗體的結(jié)構(gòu)
同Windows環(huán)境下的應(yīng)用程序窗口一樣,VisualBasic中的窗體也具有控制菜單、標(biāo)題欄、“最大化”按鈕、“最小化”按鈕、“關(guān)閉”按鈕以及邊框等,如圖1-13所示。窗體的操作與Windows下的窗口操作一樣。通過(guò)鼠標(biāo)左鍵拖動(dòng)標(biāo)題欄可以移動(dòng)窗體;鼠標(biāo)對(duì)準(zhǔn)窗體邊框,當(dāng)出現(xiàn)雙向箭頭時(shí)拖動(dòng)鼠標(biāo)可以改變窗體的大小。建立新窗體后,它的大小、背景顏色、標(biāo)題及窗體名稱等特征需要根據(jù)應(yīng)用程序的要求進(jìn)行設(shè)置。
371.4.1窗體的結(jié)構(gòu)圖1-13窗體的結(jié)構(gòu)
“最小化”按鈕“最大化”按鈕“關(guān)閉”按鈕圖標(biāo)控制菜單框邊框樣式標(biāo)題381.4.2窗體的屬性
窗體的基本屬性有:Name、Left、Top、Height、Width、Visible、Enabled、Font、ForeColor、BackColor等。在VisualBasic中的大多數(shù)控件基本上都有這些屬性,在以后介紹其他對(duì)象時(shí),這些屬性還將詳細(xì)介紹。1.Name屬性
VisualBasic中任何對(duì)象都有Name屬性,在程序代碼中通過(guò)該屬性來(lái)引用、操作具體的對(duì)象。首次在工程中添加窗體時(shí),該窗體的名稱被缺省為Form1;添加第二個(gè)窗體,其名稱被缺省為Form2,依此類推。最好給Name屬性設(shè)置一個(gè)有實(shí)際意義的名稱,如給一個(gè)程序的主控窗體命名為“MainFrm”。這樣在程序代碼中的意義就很清楚,程序的可讀性就好。
391.4.2窗體的屬性
2.Left、Top屬性窗體運(yùn)行在屏幕中,屏幕是窗體的容器,因此窗體的Left、Top屬性值是相對(duì)屏幕左上角的坐標(biāo)值。對(duì)于控件,Left、Top屬性值則是相對(duì)“容器”左上角的坐標(biāo)值,其缺省單位是twip。1twip=1/20點(diǎn)=1/1440in=1/567cm3.Height、Width屬性返回或設(shè)置對(duì)象的高度和寬度。對(duì)于窗體,指的是窗口的高度和寬度,包括邊框和標(biāo)題欄。對(duì)于控件,這些屬性使用控件所在“容器”的度量單位。圖1-14是屏幕(Screen)、窗體(Form1)和命令按鈕(Ok)的Left、Top、Height、Width屬性表示,讀者要注意Left、Top屬性值是相對(duì)“容器”左上角的坐標(biāo)值。在VisualBasic中除了用屏幕、窗體作“容器”外,還有框架和圖片框?qū)ο罂勺鳌叭萜鳌薄?/p>
401.4.2窗體的屬性圖1-14對(duì)象的Left、Top、Height、Width屬性Screen.HeightForm1.TopForm1.HeightOk.HeightOk.TopOk.LeftOk.WidthForm1.WidthForm1.LeftScreen.Width411.4.2窗體的屬性例1-1在窗體Form1被加載時(shí),將其大小設(shè)置為屏幕大小的1/2,并居中顯示。通過(guò)窗體的Load事件來(lái)實(shí)現(xiàn)的程序代碼為:PrivateSubForm_Load() Form1.Width=Screen.Width/2 '設(shè)置窗體的寬度,Screen為屏幕對(duì)象
Form1.Height=Screen.Height/2'設(shè)置窗體的高度。'在水平方向上居中顯示。Form1.Left=(Screen.Width-Form1.Width)/2 '在垂直方向上居中顯示。Form1.Top=(Screen.Height-Form1.Height)/2EndSub
421.4.2窗體的屬性4.Caption標(biāo)題屬性決定出現(xiàn)在窗體的標(biāo)題欄上的文本內(nèi)容,也是當(dāng)窗體被最小化后出現(xiàn)在窗體圖標(biāo)下的文本。如圖1-13中窗體的Caption屬性值是“VB窗體”5.字體Font屬性組uFontName屬性是字符型,決定對(duì)象上正文的字體(缺省為宋體)。uFontSize屬性是整型,決定對(duì)象上正文的字體大小(缺省為9磅)。uFontBold屬性是邏輯型,決定對(duì)象上正文是否是粗體(缺省為False)。uFontItalic屬性是邏輯型,決定對(duì)象上正文是否是斜體(缺省為False)。uFontStrikeThru屬性是邏輯型,決定對(duì)象上正文是否加一刪除線(缺省為False)。uFontUnderLine屬性是邏輯型,決定對(duì)象上正文是否帶下劃線(缺省為False)。431.4.2窗體的屬性注意:如果使用窗體或其他“容器”對(duì)象無(wú)效,則在其中的所有控件也將無(wú)效。
例1-2下面的程序是當(dāng)文本框Text1不包含任何文本時(shí),使命令按鈕CmdOk無(wú)效。PrivateSubText1_Change() IfText1.Text=""Then '查看文本框是否為空
CmdOK.Enabled=False '使按鈕無(wú)效
Else
CmdOK.Enabled=True '使按鈕有效
EndIfEndSub
441.4.2窗體的屬性7.Visible屬性用于確定一個(gè)窗體或控件為可見或隱藏。要在啟動(dòng)時(shí)隱藏一個(gè)對(duì)象,可在設(shè)計(jì)時(shí)將Visible屬性設(shè)置為False,還可在代碼中設(shè)置該屬性使控件在運(yùn)行時(shí)隱藏。8.BackColor屬性和ForeColor屬性
BackColor屬性用于返回或設(shè)置對(duì)象的背景顏色,F(xiàn)oreColor屬性用于返回或設(shè)置在對(duì)象里顯示圖片和文本的前景顏色,它們是十六進(jìn)制長(zhǎng)整型數(shù)據(jù),在VisualBasic中通常用Windows運(yùn)行環(huán)境的紅-綠-藍(lán)(RGB)顏色方案,使用調(diào)色板或在代碼中使用RGB或QBColor函數(shù)指定標(biāo)準(zhǔn)RGB顏色。例如,將窗體Form1的背景色設(shè)置為紅色,則可使用:
Form1.BackColor=RGB(255,0,0)
也可用十六進(jìn)制長(zhǎng)整型數(shù)據(jù)或VisualBasic系統(tǒng)內(nèi)部常量給BackColor屬性賦值。例如:
Form1.BackColor=&HFF&
它等價(jià)于:Form1.BackColor=vbRed
451.4.2窗體的屬性9.MaxButton——“最大化”按鈕和MinButton——“最小化”按鈕當(dāng)其值為Ture時(shí),有“最大化”或“最小化”按鈕;其值為False時(shí),則無(wú)。10.Icon控制圖標(biāo)屬性返回或設(shè)置窗體左上角顯示或最小化時(shí)顯示的圖標(biāo),它必須在ControlBox屬性設(shè)置為Ture才有效。缺省設(shè)置的圖標(biāo)是,單擊屬性窗口中Icon屬性值后面的按鈕,打開“加載圖標(biāo)”對(duì)話框,允許打開一個(gè)圖標(biāo)文件(*.Ico和*.Cur)作為這個(gè)屬性的值。11.ControlBox控制菜單框?qū)傩云渲翟O(shè)置為Ture時(shí),有控件菜單;設(shè)置為False時(shí),則無(wú)控件菜單,同時(shí)窗體也無(wú)“最大化”按鈕和“最小化”按鈕,即使MaxButton屬性和MinButton屬性設(shè)置為Ture。461.4.2窗體的屬性12.Picture圖片屬性設(shè)置窗體中要顯示的圖片。一般可顯示所有類型的圖片文件。13.BorderStyle邊框風(fēng)格屬性
通過(guò)改變BorderStyle屬性,可以控制窗體如何調(diào)整大小,它可取6種值,如表1-1所示。
屬性值意義數(shù)值系統(tǒng)常量0VbBSNone無(wú)(沒有邊框或與邊框相關(guān)的元素)1VbFixedSingle固定單邊框??梢园刂撇藛慰?、標(biāo)題欄、“最大化”按鈕和“最小化”按鈕。只有使用“最大化”和“最小化”按鈕才能改變窗體大小2VbSizable(缺省值)可調(diào)整大小的邊框3VbFixedDoubleialog固定對(duì)話框??梢园刂撇藛慰蚝蜆?biāo)題欄,不包含“最大化”和“最小化”按鈕,不能改變窗體尺寸4vbFixedToolWindow固定工具窗口。不能改變窗體尺寸,顯示“關(guān)閉”按鈕并用縮小的字體顯示標(biāo)題欄,窗體不在任務(wù)欄中顯示5vbSizableToolWindow可變尺寸工具窗口??梢愿淖兇绑w大小,顯示“關(guān)閉”按鈕并用縮小的字體顯示標(biāo)題欄,窗體不在任務(wù)欄中顯示表1-1窗體對(duì)象BorderStyle屬性的取值及意義
471.4.2窗體的屬性14.WindowsState屬性設(shè)置窗體運(yùn)行的狀態(tài),它可取3種值,對(duì)應(yīng)于3種狀態(tài),如表1-2所示。15.AutoRedraw屬性該屬性決定窗體被隱藏或被另一窗口覆蓋之后重新顯示時(shí),是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如Circle、Line、Pset和Print等方法的輸出。當(dāng)AutoRedraw屬性為True時(shí),重新還原該窗體以前的畫面;為False時(shí),則不重畫。表1-2屬性值說(shuō)明數(shù)值系統(tǒng)常量0VbNormal正常窗口狀態(tài),有窗口邊界1vbMinimized最小化狀態(tài),以圖標(biāo)方式運(yùn)行2vbMaximized最大化狀態(tài),無(wú)邊框,充滿整個(gè)屏幕481.4.2窗體的屬性注意:在窗體Load事件中如果要使用Print方法在窗體上打印輸出,就必須先將窗體的AutoRedraw屬性設(shè)置為True;否則窗體啟動(dòng)后將沒有輸出結(jié)果。這是因?yàn)榇绑w是在Load事件執(zhí)行完后才顯示的。讀者一下子要記住這些屬性,是有一定困難的,要熟悉并應(yīng)用這些窗體屬性,最好的辦法是上機(jī)實(shí)踐。在“屬性”窗口中更改窗體的一些屬性,然后運(yùn)行該應(yīng)用程序并觀察修改的效果。491.4.3窗體的事件
與窗體有關(guān)的事件較多,VisualBasic6.0中有30多個(gè),讀者只需掌握一些常用事件,了解這些事件的觸發(fā)機(jī)制。下面對(duì)幾個(gè)常用窗體事件作一下介紹:1.Click事件在程序運(yùn)行時(shí)單擊窗體內(nèi)的某個(gè)位置,VisualBasic將調(diào)用窗體的Form_Click事件。如果單擊的是窗體內(nèi)的控件,則只能調(diào)用相應(yīng)控件的Click事件。2.DblClick事件
程序運(yùn)行時(shí)雙擊窗體內(nèi)的某個(gè)位置,就觸發(fā)了兩個(gè)事件,第一次按動(dòng)鼠標(biāo)時(shí),觸發(fā)Click事件,第二次產(chǎn)生DblClick事件。
501.4.3窗體的事件3.Load事件在程序運(yùn)行時(shí),當(dāng)窗體被裝入工作區(qū)時(shí),將觸發(fā)它的Load事件,所以該事件通常用來(lái)在啟動(dòng)應(yīng)用程序時(shí)對(duì)控件屬性和變量初始化。4.Unload事件卸載窗體時(shí)觸發(fā)該事件。5.Resize事件當(dāng)窗體大小發(fā)生改變時(shí),將觸發(fā)一個(gè)Resize事件。6.Activate事件當(dāng)窗體由非活動(dòng)窗體變?yōu)榛顒?dòng)窗體,即當(dāng)窗體得到焦點(diǎn)時(shí)觸發(fā)該事件。
511.4.4窗體的方法
窗體常用的方法有:Print(打印輸出)、Cls(清除)、Show(顯示)、Hide(隱藏)以及(Move)移動(dòng)等。1.Print方法用于在窗體上輸出信息,其使用格式為:窗體名.Print[輸出項(xiàng)列表]
例如:Printx,y,"WINDOWS",則在窗體上輸出x,y的值和“WINDOWS”。關(guān)于Print方法的使用在2.3.2節(jié)作詳細(xì)介紹。2.Cls(清除)方法
Cls方法用來(lái)清除運(yùn)行時(shí)在窗體上顯示的文本或圖形,它有如下格式:窗體名.Cls
Cls方法用來(lái)清除運(yùn)行時(shí)在窗體上顯示的文本或圖形,當(dāng)使用C1s方法后,窗體的當(dāng)前坐標(biāo)屬性CurrentX和CurrentY被設(shè)置為0。
521.4.4窗體的方法3.Move(移動(dòng))方法
Move方法用來(lái)在屏幕上移動(dòng)窗體,它有如下格式:窗體名.MoveLeft[,Top[,Width[,Height]]]
其中,Left、Top、With、Height均為單精度數(shù)值型數(shù)據(jù),分別用來(lái)表示窗體相對(duì)于屏幕左邊緣的水平坐標(biāo)、相對(duì)于屏幕頂部的垂直坐標(biāo)、窗體的新寬度和新高度。
Move方法至少需要一個(gè)Left參數(shù)值,其余均可省略。如果要指定其余參數(shù)值,則必須按順序依次給定前面的參數(shù)值。例如,不能只指定Width值,而不指定Left和Top值,但允許只指定前面部分的參數(shù),而省略后面部分。例如,允許只指定Left和Top,而省略Width和Height,此時(shí)窗體的寬度和高度在移動(dòng)后保持不變。
531.4.4窗體的方法例1-3
使用Move方法移動(dòng)一個(gè)窗體。雙擊窗體,窗體移動(dòng)并定位在屏幕的左上角,同時(shí)窗體的長(zhǎng)寬也縮小一倍。為了實(shí)現(xiàn)這一功能,可以在窗體Forml的“代碼”窗口中輸入下列代碼:PrivateSubForm_DblClick()Form1.Move0,0,Form1.Width/2,Form1.Height/2EndSub
541.4.4窗體的方法4.Show(顯示)方法
Show方法用于在屏幕上顯示一個(gè)窗體,使指定的窗體在屏幕上可見,調(diào)用
Show方法與設(shè)置窗體Visible屬性為
True具有相同的效果。其調(diào)用格式如下:窗體名.Show[vbModal|vbModeless]【說(shuō)明】(1)該方法有一個(gè)可選參數(shù),它有兩種可能值:vbModal或vbModeless,若未指定參數(shù),則缺省為vbModal。Show方法的可選參數(shù)表示從當(dāng)前窗口或?qū)υ捒蚯袚Q到其他窗口或?qū)υ捒蛑坝脩舯仨毑扇〉膭?dòng)作。當(dāng)參數(shù)為vbModal時(shí),要求用戶必須對(duì)當(dāng)前的窗口或?qū)υ捒蜃龀鲰憫?yīng),才能切換到本應(yīng)用程序的其他窗口。
(2)如果要顯示的窗體事先未裝入,系統(tǒng)將自動(dòng)調(diào)用Load命令裝入該窗體再顯示。551.4.4窗體的方法5.Hide(隱藏)方法
Hide方法用于使指定的窗體不顯示,但不從內(nèi)存中刪除窗體。其調(diào)用格式為:窗體名.Hide
當(dāng)一個(gè)窗體從屏幕上隱去時(shí),其Visible屬性被設(shè)置成False,并且該窗體上的控件也變得不可訪問(wèn),但對(duì)運(yùn)行程序間的數(shù)據(jù)引用無(wú)影響。若要隱去的窗體沒有裝入,則Hide方法會(huì)裝入該窗體但不顯示。下面是一個(gè)使用Hide和Show方法的例子。
561.4.4窗體的方法例1-4
實(shí)現(xiàn)將指定的窗體在屏幕上進(jìn)行顯示或隱藏的切換。為了實(shí)現(xiàn)這一功能,可以在窗體Forml的“代碼”窗口中輸入下列代碼:PrivateSubForm_Click()Form1.Hide '隱藏窗體
MsgBox"單擊確定按鈕,使窗體重現(xiàn)屏幕" '顯示信息
Form1.Show '重現(xiàn)窗體EndSub窗體還有Line、Pset、Circle和Refresh等方法,這些方法將在第6章詳細(xì)討論。571.4.5多窗體
建立新工程時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)窗體,但除了簡(jiǎn)單的練習(xí)外,真正的商業(yè)化的應(yīng)用程序均需要使用多個(gè)窗體。因此,還需要了解關(guān)于多窗體的基本操作。
(1)添加窗體。選擇“工程”菜單中“添加窗體”命令,VisualBasic將顯示如圖1-15所示的窗口;選擇“窗體”后單擊“打開”按鈕即添加了新窗體。此后如打開“工程資源管理器”,會(huì)顯示新增的窗體,如圖1-16所示。
圖1-15“添加窗體”窗口
圖1-16“工程資源管理器”窗口
581.4.5多窗體
(2)刪除窗體。右擊需刪除的窗體,在彈出的快捷菜單中選擇“移除...”選項(xiàng)。
(3)運(yùn)行時(shí)顯示窗體。運(yùn)行時(shí)顯示窗體通過(guò)調(diào)用Show方法實(shí)現(xiàn)。如執(zhí)行語(yǔ)句“Form2.Show”
顯示窗體Form2。
(4)關(guān)閉窗體。通過(guò)調(diào)用Unload方法實(shí)現(xiàn)。如執(zhí)行語(yǔ)句“UnloadForm2”關(guān)閉窗體Form2。
(5)設(shè)置啟動(dòng)對(duì)象。一個(gè)工程(如工程1)若有多個(gè)窗體,其缺省狀態(tài)下通常由Form1啟動(dòng),但可以通過(guò)選擇“工程”菜單的“工程1屬性”選項(xiàng),在打開的對(duì)話框中設(shè)置啟動(dòng)對(duì)象,如圖1-17所示。VisualBasic的啟動(dòng)對(duì)象可以是任何一個(gè)窗體,也可是一個(gè)用戶定義的主過(guò)程Submain,該過(guò)程必須寫在標(biāo)準(zhǔn)模塊中。讀者詳見第4章。
591.4.5多窗體圖1-17“工程屬性”對(duì)話框
601.4.6與窗體加載與卸載過(guò)程相關(guān)的事件
在窗體加載與卸載過(guò)程中,系統(tǒng)將發(fā)生一系列的窗體事件,主要的事件名稱及事件發(fā)生的先后順序如圖1-18和圖1-19所示,它們分別說(shuō)明了在窗體加載和卸載過(guò)程中所用的語(yǔ)句、方法以及所觸發(fā)的事件的先后順序。
圖1-18窗體的加載過(guò)程Show方法Activate自動(dòng)建立Load語(yǔ)句建立窗體顯示在屏幕上裝入內(nèi)存所觸發(fā)的事件InitializeLoadResizePaintGotFocus隱藏窗體從內(nèi)存中刪除UnLoad方法Hide方法QueryUnloadUnloadTerminate圖1-19窗體的卸載過(guò)程DeActivateLostFocus611.5.1VisualBasic應(yīng)用程序的組成
一個(gè)VisualBasic的應(yīng)用程序也稱為一個(gè)工程,由若干問(wèn)所組成。其中工程文件(*.Vbp)用來(lái)管理構(gòu)成應(yīng)用程序的所有文件,如:窗體文件(.Frm)、標(biāo)準(zhǔn)模塊文件(.Bas)、類模塊文件(.Cls)等等,它們的關(guān)系如圖1-20所示?!菊f(shuō)明】(1)每個(gè)窗體文件(也稱窗體模塊)包含窗體本身的數(shù)據(jù)(屬性)、方法和事件過(guò)程(即代碼部分,其中有為響應(yīng)特定事件而執(zhí)行的指令)。窗體還包含控件,每個(gè)控件都有自己的屬性、方法和事件過(guò)程集。除了窗體和各控件的事件過(guò)程,窗體模塊還可包含通用過(guò)程,是用戶自定義的子過(guò)程和函數(shù)過(guò)程,它對(duì)來(lái)自任何事件過(guò)程的調(diào)用都做出響應(yīng)。
(2)標(biāo)準(zhǔn)模塊是由那些與特定窗體或控件無(wú)關(guān)的代碼組成的另一類型的模塊。如果一個(gè)過(guò)程可能用來(lái)響應(yīng)幾個(gè)不同對(duì)象中的事件,應(yīng)該將這個(gè)過(guò)程放在標(biāo)準(zhǔn)模塊中,而不必在每一個(gè)對(duì)象的事件過(guò)程中重復(fù)相同的代碼。621.5.1VisualBasic應(yīng)用程序的組成
(3)類模塊與窗體模塊類似,只是沒有可見的用戶界面。可以使用類模塊創(chuàng)建含有方法和屬性代碼的自己的對(duì)象,這些對(duì)象可被應(yīng)用程序內(nèi)的過(guò)程調(diào)用。標(biāo)準(zhǔn)模塊只包含代碼,而類模塊既包含代碼又包含數(shù)據(jù),可視為沒有物理表示的控件。
一個(gè)或若干個(gè)標(biāo)準(zhǔn)模塊(.Bas)文件VB工程(*.Vbp)類模塊(.Cls)文件一個(gè)或若干個(gè)窗體模塊(*.Frm)文件1各種控件2.窗體及控件的事件過(guò)程3.自定義子過(guò)程(Sub)4.自定義函數(shù)過(guò)程(Function)1.自定義子過(guò)程(Sub)2.自定義函數(shù)過(guò)程(Function)圖1-20VisualBasic應(yīng)用程序中各文件的關(guān)系
631.5.1VisualBasic應(yīng)用程序的組成除了上面的文件外,一個(gè)工程還包括以下幾個(gè)附屬文件,它們沒法在工程資源管理窗口中查看或管理。
(1)窗體的二進(jìn)制數(shù)據(jù)文件(.frx):如果窗體上控件的數(shù)據(jù)屬性含有二進(jìn)制屬性(例如圖片或圖標(biāo)),當(dāng)保存窗體文件時(shí),就會(huì)自動(dòng)產(chǎn)生同名的.frx文件。
(2)資源文件(.res):包含著不必重新編輯代碼就可以改變的位圖、字符串和其他數(shù)據(jù)。該文件是可選項(xiàng)。
(3)ActiveX控件的文件(.ocx):ActiveX控件的文件是一段設(shè)計(jì)好的可以重復(fù)使用的程序代碼和數(shù)據(jù),可以添加到工具箱,并可像其他控件一樣在窗體中使用。該文件是可選項(xiàng)。641.5.2VisualBasic應(yīng)用程序的工作方式
VisualBasic應(yīng)用程序采用的是以事件驅(qū)動(dòng)應(yīng)用程序的工作方式。事件是窗體或控件所能識(shí)別的動(dòng)作。在響應(yīng)事件時(shí),事件驅(qū)動(dòng)應(yīng)用程序執(zhí)行相應(yīng)事件的程序代碼。VisualBasic的每一個(gè)窗體和控件都有一個(gè)預(yù)定義的事件集。如果其中有一個(gè)事件發(fā)生,并且在關(guān)聯(lián)的事件過(guò)程中存在代碼,VisualBasic則執(zhí)行該代碼
注意:有些事件伴隨其他事件發(fā)生。例如,在DblClick事件發(fā)生時(shí),Click、MouseDown和MouseUp事件也會(huì)發(fā)生。
651.6一個(gè)簡(jiǎn)單的VisualBasic程序的創(chuàng)建實(shí)例
本節(jié)通過(guò)一個(gè)簡(jiǎn)單的VisualBasic程序建立與調(diào)試實(shí)例,向讀者介紹VisualBasic應(yīng)用程序的開發(fā)過(guò)程,VisualBasic集成開發(fā)環(huán)境的使用。使讀者初步掌握VisualBasic程序的開發(fā)過(guò)程,理解VisualBasic程序的運(yùn)行機(jī)制。讀者可以通過(guò)上機(jī),自己動(dòng)手建立一個(gè)簡(jiǎn)單的VisualBasic程序。
例1-5設(shè)計(jì)一個(gè)程序,當(dāng)程序運(yùn)行后,在窗體的正中間顯示“你好!請(qǐng)輸入你的姓名”,焦點(diǎn)定在其下的文本框中(如圖1-21所示),當(dāng)用戶輸入姓名并單擊“確定”按鈕后,在窗體中用黑體、12磅、紅色字顯示“XXX同學(xué),你好!祝你學(xué)好VB程序設(shè)計(jì)”,同時(shí)窗體上出現(xiàn)兩個(gè)命令按鈕“繼續(xù)”和“結(jié)束”,其中“XXX”是用戶輸入的姓名,例如,當(dāng)用戶輸入“王五”,單擊“確定”按鈕后,就會(huì)出現(xiàn)如圖1-22所示的界面,如果單擊“繼續(xù)”按鈕,則又回到初始運(yùn)行狀態(tài);單擊“結(jié)束”按鈕即結(jié)束程序運(yùn)行。661.6一個(gè)簡(jiǎn)單的VisualBasic程序的創(chuàng)建實(shí)例
分析:本應(yīng)用程序的界面設(shè)計(jì)用到了3個(gè)VisualBasic基本控件,即命令按鈕、標(biāo)簽和文本框,這3個(gè)基本控件是VisualBasic程序設(shè)計(jì)中使用最多的控件,下面首先對(duì)這3個(gè)控件作些簡(jiǎn)單介紹,更詳細(xì)的介紹讀者可閱讀5.1節(jié)。
圖1-21程序運(yùn)行后初始界面圖1-22單擊窗體后的程序界面
671.6一個(gè)簡(jiǎn)單的VisualBasic程序的創(chuàng)建實(shí)例1.命令按鈕命令按鈕(CommandBttion)是用來(lái)接受用戶的操作信息,激發(fā)某些事件,實(shí)現(xiàn)一個(gè)命令的啟動(dòng)、中斷和結(jié)束等操作的。命令按鈕在工具箱中的圖標(biāo)為
,在程序設(shè)計(jì)中該類對(duì)象名的前綴為cmd。命令按鈕的基本屬性:Name、Height、Width、Top、Left、Enabled、Visible、Font等,與窗體的使用相同,顯示在命令按鈕上的信息是標(biāo)題屬性(Caption屬性)。通常使用的是單擊事件(Click事件)。2.標(biāo)簽標(biāo)簽(Label)控件可以顯示用戶不能直接改變的文本,在窗體上顯示說(shuō)明性信息。標(biāo)簽在工具箱中的圖標(biāo)為。
681.6一個(gè)簡(jiǎn)單的VisualBasic程序的創(chuàng)建實(shí)例3.文本框文本框(TextBox)通常用于顯示用戶輸入的信息,作為接受用戶輸入數(shù)據(jù)的接口;也可以在設(shè)計(jì)或運(yùn)行時(shí),通過(guò)對(duì)控件的Text屬性賦值。文本框在工具箱中的圖標(biāo)為。用戶在文本框中輸入的信息存放在“Text”屬性中,程序中可通過(guò)對(duì)文本框Text屬性賦值,修改顯示在文本框中的內(nèi)容。Text屬性值為字符型(String)。文本框常用到Change事件、LostFocus事件和KeyPress事件。用戶改變文本框的內(nèi)容或通過(guò)代碼改變“Text”屬性的設(shè)置時(shí),將觸發(fā)Change事件。當(dāng)用戶用“Tab”鍵或鼠標(biāo)選擇窗體上的其他對(duì)象而離開文本框時(shí),將觸發(fā)LostFocus事件。當(dāng)進(jìn)行文本輸入時(shí),每一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)全自動(dòng)剖溝機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 山東省德州市寧津縣2024-2025學(xué)年九年級(jí)上學(xué)期期末化學(xué)試卷(含答案)
- 高中禁毒測(cè)試題及答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職法學(xué)自我提分評(píng)估(附答案)
- 2019-2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能提升訓(xùn)練試卷A卷附答案
- 2023-2024學(xué)年廣東省廣州四中教育集團(tuán)七年級(jí)(下)期中數(shù)學(xué)試卷(含答案)
- 汽油檢測(cè)知識(shí)培訓(xùn)課件
- (一模)哈三中2025屆高三第一次模擬考試 物理試題(含答案)
- 安徒生童話之丑小鴨的感悟
- 煤炭買賣居間合同
- 2024年批次杭州市教育局所屬事業(yè)單位招聘筆試真題
- 2024年海東市第二人民醫(yī)院自主招聘專業(yè)技術(shù)人員考試真題
- 《VAVE價(jià)值工程》課件 - 創(chuàng)造最大化的價(jià)值與效益
- 中醫(yī)養(yǎng)生保健知識(shí)科普
- 社區(qū)居委會(huì)2025年工作總結(jié)暨2025年工作計(jì)劃
- 2024年天翼云認(rèn)證運(yùn)維工程師考試復(fù)習(xí)題庫(kù)(含答案)
- 水果聯(lián)營(yíng)合同范例
- 江蘇卷2024年高考語(yǔ)文第一次模擬考試一(原卷版+解析版)
- 實(shí)驗(yàn)室儀器設(shè)備售后服務(wù)承諾書(7篇)
- 《主管技能訓(xùn)練》課件
- 2024解析:第十六章電壓和電阻-講核心(解析版)
評(píng)論
0/150
提交評(píng)論