




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章程序設(shè)計(jì)入門第2章程序設(shè)計(jì)入門1工具箱工程窗口屬性窗口窗體布局窗口窗體對象對象窗口VisualBasic6的集成開發(fā)環(huán)境代碼窗口立即窗口本地窗口主菜單主工具欄工具箱工程窗口屬性窗口窗體布局窗口窗體對象對象窗口Visua2PictureBox控件TextBox控件CommandButton控件OptionButton控件ListBox控件VScrollBar控件DriveListBox控件FileListBox控件Line控件Data控件Image控件Shape控件DirListBox控件Timer控件HScrollBar控件ComboBox控件CheckBox控件Frame控件Label控件VisualBasic工具箱窗口PictureBox控件TextBox控件Comma3VisualBasic集成環(huán)境的“工程”窗口和“屬性”窗口VisualBasic集成環(huán)境的4VisualBasic集成環(huán)境的“對象”窗口一、向窗體上添加控件的方法(1)單擊圖標(biāo),再拖動(dòng)(2)雙擊圖標(biāo)(3)Ctrl鍵+單擊圖標(biāo),再拖動(dòng)(4)復(fù)制+粘貼二、選擇控件的方法P20三、改變控件的大小和位置P21VisualBasic集成環(huán)境的“對象”窗口一、向窗體上5程序的設(shè)計(jì)、運(yùn)行和中斷狀態(tài)(1)設(shè)計(jì)狀態(tài)設(shè)置對象、編輯代碼。(2)運(yùn)行狀態(tài)解釋型地運(yùn)行程序。(3)中斷狀態(tài)調(diào)試程序,進(jìn)行排錯(cuò)??梢栽谌N狀態(tài)之間進(jìn)行切換。程序的設(shè)計(jì)、運(yùn)行和中斷狀態(tài)(1)設(shè)計(jì)狀態(tài)6窗體(Form)對象
窗體是窗口的框架,是VB程序最基本的對象,是各類控件的容器。VB開發(fā)環(huán)境為每個(gè)窗體模塊自動(dòng)地創(chuàng)建了一個(gè)窗體對象。窗體(Form)對象窗體是窗口的框架,是VB7重溫對象的PME模型任何對象都可以從以下三個(gè)方面進(jìn)行描述:(1)“屬性”(Property)對象所具有的特性。(2)“方法”(Method)對象可能執(zhí)行的操作或行為。(3)“事件”(Event)對象可以識別并作出反應(yīng)的外部刺激。重溫對象的PME模型任何對象都可以從以下三個(gè)方面進(jìn)行描述:8Name:對象名。用于標(biāo)識對象的字符串。對象名必須滿足以下條件:(1)必須以字母開頭(2)可以包含字母、數(shù)字和下劃線,不能包括標(biāo)點(diǎn)和空格(3)不能多于40個(gè)字符(4)不能與其它公共對象重名,可以與關(guān)鍵字相同,但應(yīng)避免(5)在同一模塊下,不能重名(6)建議為對象名加上類型前綴Form對象的常用屬性P339附錄BName:對象名。用于標(biāo)識對象的字符串。對象名必須滿足以下條9Caption:顯示在窗體標(biāo)題欄上的文字。Icon:窗體圖標(biāo)。與一圖標(biāo)文件相聯(lián)系。如為“無”則使用默認(rèn)圖標(biāo)。Visible:窗體是否可見,True或False。Form對象的常用屬性Left、Top屬性:窗體相對于屏幕的位置(原點(diǎn)為屏幕左上方)。坐標(biāo)值的默認(rèn)單位是緹(twip),1緹等于1/567厘米。Width、Height屬性:窗體的寬度與高度。默認(rèn)單位也是緹。Moveable屬性:True/False,F(xiàn)alse時(shí)窗體不能被鼠標(biāo)拖動(dòng)。Enabled屬性:True/False,F(xiàn)alse時(shí)窗體及上面的控件不響應(yīng)用戶的操作。Picture屬性:指定一個(gè)圖片文件,作為窗體的背景圖。Caption:顯示在窗體標(biāo)題欄上的文字。Icon:窗體圖標(biāo)10BorderStyle:邊框類型。決定窗體是否可縮放、標(biāo)題欄是正常還是窄、是否在任務(wù)欄上出現(xiàn)等。該屬性對MinButton、MaxButton屬性的設(shè)置有影響。ControlBox:窗體是否有圖標(biāo)、系統(tǒng)菜單和最大化、最小化與關(guān)閉按鈕。WindowState屬性:取值為0、1、2,決定窗體還原、最小化、最大化狀態(tài)。MaxButton與MinButton:是否顯示最大化與最小化按鈕,值為True或False。只有二者均為False時(shí)才不顯示,否則設(shè)為False則只以無效顯示。Form對象的常用屬性當(dāng)ControlBox、BorderStyle、WindowState屬性,與MaxButton與MinButton屬性有矛盾時(shí),后者服從于前者。注意BorderStyle:邊框類型。決定窗體是否可縮放、標(biāo)題欄11屬性的分類設(shè)計(jì)時(shí)對象屬性的更改(1)在設(shè)計(jì)(利用屬性窗口)和運(yùn)行狀態(tài)(通過程序代碼)都可設(shè)置的屬性。(2)只能在設(shè)計(jì)時(shí)設(shè)置,不能在運(yùn)行時(shí)設(shè)置的屬性。如對象的Name屬性。稱為只讀屬性。(3)只能在運(yùn)行時(shí)設(shè)置,不能在設(shè)計(jì)時(shí)設(shè)置的屬性。如窗體CurrentX、CurrentY屬性,在屬性窗口中不可見,稱為運(yùn)行時(shí)屬性(4)在設(shè)計(jì)和運(yùn)行狀態(tài)下都可設(shè)置,但只有在運(yùn)行時(shí)才能生效的屬性。如Visible屬性。在屬性窗口內(nèi)完成,方式有:利用鍵盤輸入在已提供的選項(xiàng)中選擇利用對話框?qū)傩缘姆诸愒O(shè)計(jì)時(shí)對象屬性的更改(1)在設(shè)計(jì)(利用屬性窗口)和12運(yùn)行時(shí)對象屬性的讀寫方法訪問對象屬性的格式:
對象名.屬性名如:Form1.Caption通過此格式可以讀取屬性的值,也可以設(shè)置屬性的值。如:Form1.Caption="你好!VisualBasic"或:x=Form1.Left賦值語句廣泛用于程序代碼的編寫中運(yùn)行時(shí)對象屬性的讀寫方法訪問對象屬性的格式:賦值語句廣泛用于13Move方法,語法為:對象名.MoveLeft,Top,Width,Height該方法將object對象移動(dòng)到以left,top定義的新位置。同時(shí)可以改變該對象的大小(以width,height為新的寬與高)。其中l(wèi)eft參數(shù)必須給定。但是,要給定任何其它的參數(shù),必須先給定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。例:設(shè)frmFirst為一窗體對象名。frmFirst.Move1000,1000,1200,2000‘既移動(dòng)位置,又改變大小frmFirst.Move1000,1000 ‘只移動(dòng)frmFirst.Move1000 ‘只左右移動(dòng)frmFirst.Move1000,,1200 ‘錯(cuò)誤,缺少參數(shù)Move方法同時(shí)改變了Left,Top,Width與Height屬性的值。效果與分別設(shè)置這些屬性的值等效。Form對象的常用方法
某些方法的執(zhí)行改變一些屬性的值,有些方法的執(zhí)行結(jié)果可能受一些屬性的影響。方法的執(zhí)行可能等效于對一些屬性的修改。Move方法,語法為:例:設(shè)frmFirst為一窗體對象名。14Hide方法隱藏窗體語法為:
對象名.Hide
此方法將object對象隱藏,并將其Visible屬性設(shè)置為False。窗體被隱藏之后,就不能響應(yīng)用戶的操作。該方法無參數(shù)。Form對象的常用方法Show方法:使窗體從隱藏狀態(tài)變?yōu)轱@示狀態(tài)。對象名.ShowShow方法有兩個(gè)參數(shù),將在第11章講解。Hide方法隱藏窗體Form對象的常用方法Show方法:15Print方法:在窗體表面上顯示內(nèi)容。對象名.Print[“,|;”分隔的輸出項(xiàng)]Print支持以逗號或分號分隔的多個(gè)輸出項(xiàng)的值,每個(gè)輸出項(xiàng)可以是屬性、變量、常量或表達(dá)式?!埃卑粗票砹休敵?,“;”按緊湊格式輸出。默認(rèn)情況下,每調(diào)用一次Print方法將在窗體上顯示一行內(nèi)容。調(diào)用Print語句的末尾以“,”或“;”結(jié)尾,則不自動(dòng)換行。Print方法的詳細(xì)用法見第10章。Print方法:在窗體表面上顯示內(nèi)容。16事件是對象能夠識別的外部刺激,該刺激既可能來自于用戶,也可能來自于操作系統(tǒng)。在VB中,每一類對象能支持什么事件是已經(jīng)定義好的,并且每個(gè)事件都有事件名。某個(gè)對象支持一個(gè)事件就說明它能識別這個(gè)事件,那么要讓它對這個(gè)事件作出反應(yīng)以及如何反應(yīng),則必須編寫這個(gè)對象的“事件過程”。
窗體Form對象的常用事件程序設(shè)計(jì)者在工程中添加了窗體和控件等對象并設(shè)置了初始屬性之后,就該編寫它們的事件過程,這樣在程序運(yùn)行過程中,各種對象才能對用戶的操作作出反應(yīng),并完成程序指定的任務(wù)。事件是對象能夠識別的外部刺激,該刺激既可能來自于用戶17窗體Form對象的常用事件在VB中,所有對象事件過程的語法結(jié)構(gòu)都是:PrivateSub過程名(參數(shù))…'(VB語句)EndSub其中過程名不能隨便給定。對于窗體對象,事件過程名是“Form_事件名”;對于各種控件對象,事件過程名是“對象名_事件名”。事件過程是否有參數(shù),有幾個(gè)參數(shù),因事件的不同而不同。事件過程總是以“EndSub”表示過程的結(jié)束。
用戶可以把想讓對象對該事件所做的反應(yīng)以VB語句的形式寫在事件過程中。在一個(gè)對象的事件過程中,可以設(shè)置其自身的或其它的對象的屬性、執(zhí)行其自身的或其它的對象的方法、甚至可以調(diào)用自身的或其它的對象的事件過程。窗體Form對象的常用事件在VB中,所有對象事件過程18Click事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)單擊鼠標(biāo)左鍵或右鍵時(shí)引發(fā)。Click事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。窗體的Click事件語法: PrivateSubForm_Click() ……(語句組) EndSub窗體Form對象的常用事件Click事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)單擊鼠標(biāo)左鍵19DblClick事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)快速雙擊鼠標(biāo)鍵時(shí)引發(fā)。DblClick事件過程:接收到DblClick事件時(shí)執(zhí)行的代碼,DblClick過程語法格式: PrivateSubForm_DblClick() ……(語句) EndSubResize事件:當(dāng)窗體因任何原因大小發(fā)生變化時(shí)(或第一次顯示窗體時(shí))引發(fā)該事件。在拖動(dòng)邊框窗體改變大小時(shí),會(huì)連續(xù)引發(fā)多個(gè)Resize事件。Load事件:窗體在加載顯示時(shí)引發(fā)此事件,常用來對窗體或控件進(jìn)行初始化。窗體Form對象的常用事件DblClick事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)快速雙20“代碼”窗口的使用打開【例2.2】打開【例2.1】事件過程就是一個(gè)事件發(fā)生時(shí)執(zhí)行的程序代碼。每個(gè)事件過程都是相互獨(dú)立的,事件過程排列的前后順序無關(guān)緊要。VB的程序設(shè)計(jì)方式既是面向?qū)ο蟮?,又是事件?qū)動(dòng)的。“代碼”窗口的使用打開【例2.2】打開【例2.1】事件過程就21Left、Top:命令按鈕在窗體上的位置。坐標(biāo)值的默認(rèn)單位是緹。Width、Height:按鈕的寬度與高度。默認(rèn)單位也是緹。Visible:True或False。該按鈕是否可見(運(yùn)行時(shí)起作用)。Name:對象名。要符合VB對對象名的要求。建議為按鈕對象名加上“cmd”前綴。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Left、Top:命令按鈕在窗體上的位置。坐標(biāo)值的默認(rèn)單位22Caption:顯示在按鈕表面上的文字??梢允褂谩?”字符與其后的字母組成快捷鍵。Enabled:True或False。False時(shí)按鈕變灰,不能響應(yīng)點(diǎn)擊。Value:將該屬性設(shè)為True可以觸發(fā)按鈕對象的Click事件。只能在運(yùn)行時(shí)設(shè)置。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Caption:顯示在按鈕表面上的文字??梢允褂谩?”字符與23Default:若該屬性為True,則按鈕對象為默認(rèn)按鈕。不管焦點(diǎn)
在哪個(gè)控件上,用戶按回車鍵,均觸發(fā)按鈕的Click事件。默認(rèn)按鈕有較粗的邊框。一個(gè)窗體上只能有一個(gè)按鈕的Default屬性為True。Cancel:若該屬性為True,則按鈕對象為默認(rèn)的“取消”按鈕。不管焦點(diǎn)在哪個(gè)控件上,用戶按“ESC”鍵,均觸發(fā)按鈕的Click事件。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Default:若該屬性為True,則按鈕對象為默認(rèn)按鈕。不24Move方法,此方法在窗體上移動(dòng)按鈕對象,參數(shù)的意義與窗體的Move方法相同。object.MoveLeft,Top,Width,Height命令按鈕對象的常用方法和事件Move方法,此方法在窗體上移動(dòng)按鈕對象,參數(shù)的意義與窗體的25Click事件:當(dāng)用戶在按鈕表面上單擊鼠標(biāo)左鍵產(chǎn)生Click事件。另外下列方法也能觸發(fā)按鈕的Click事件:(1)用Tab鍵把焦點(diǎn)移動(dòng)到該按鈕上,然后按空格或回車鍵。(2)按快捷鍵(Alt+具有下劃線的字母)(3)如為窗體的缺省按鈕,按回車鍵。(4)如為窗體的默認(rèn)“取消”按鈕,按ESC鍵。(5)在運(yùn)行階段設(shè)置屬性:object.Value=TrueClick事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。按鈕的Click事件語法: PrivateSubobject_Click() ……(語句組) EndSub命令按鈕對象不支持鼠標(biāo)雙擊事件,即無DblClick事件。雙擊操作被理解為兩個(gè)單擊操作。命令按鈕對象的常用方法和事件Click事件:當(dāng)用戶在按鈕表面上單擊鼠標(biāo)左鍵產(chǎn)生Click26窗體與控件事件過程名的區(qū)別:對于窗體對象,其事件過程名為“Form_事件名”,與其對象名無關(guān)。對于控件對象,其事件過程名為“對象名_事件名”,用到了其對象名。命令按鈕對象的常用方法和事件打開【例2.3】窗體與控件事件過程名的區(qū)別:命令按鈕對象的常用方法和事件打開27Left、Top、Width、Height、Visible、Enabled屬性與命令按鈕的意義相同。Name:對象名。Text:文本框中的文本內(nèi)容(默認(rèn)屬性)。文本框(TextBox)對象的常用屬性Left、Top、Width、Height、Visibl28MaxLength:限制文本框中的文本的最大長度(字符個(gè)數(shù))。如果為0,則長度只受系統(tǒng)限制。文本框(TextBox)對象的常用屬性Appearance:文本框是平面的還是立體的。Locked:為True文本框的內(nèi)容不能被編輯(與將Enabled設(shè)置為False不同,Enabled為False時(shí)會(huì)將對文本框的鼠標(biāo)操作傳遞給窗體)。MaxLength:限制文本框中的文本的最大長度(字符個(gè)數(shù))29SelLength、SelStart和SelText:分別為當(dāng)前選定文本的長度、選定文本的起始位置(以0為起點(diǎn))與選定文本的內(nèi)容。這三屬性只在運(yùn)行時(shí)使用。文本框(TextBox)對象的常用屬性Alignment:文本框中文本相對于文本框的對齊方式。須將MultiLine設(shè)為True。PasswordChar:設(shè)置口令字符。須將MultiLine設(shè)為False才能生效。MultiLine:為True時(shí),文本框中可以顯示多行內(nèi)容,最多可包含32K個(gè)字符。False時(shí),忽略換行符,最多可包含2048。ScrollBars:設(shè)置文本框的滾動(dòng)條,有0~3共4個(gè)取值。只有MultiLine屬性為True時(shí),此屬性才有意義。SelLength、SelStart和SelText:分30Move方法:用法與窗體相同。Click事件、DblClick事件:因?yàn)槲谋究蚩丶丫哂袃?nèi)在的編輯功能,一般不必編寫其Click和DlbClick事件過程。Change事件:當(dāng)文本框的內(nèi)容發(fā)生改變時(shí)引發(fā)Change事件。
PrivateSubobject_Change() ……(語句) EndSub文本框(TextBox)對象的方法與事件打開【例2.4】Move方法:用法與窗體相同。Change事件:當(dāng)文本框的內(nèi)31
標(biāo)簽可以用來對其它沒有標(biāo)題的控件(如文本框)進(jìn)行說明,也可用來顯示一些程序運(yùn)行過程中的提示信息。標(biāo)簽對象顯示的內(nèi)容不能由用戶直接修改,但可由程序代碼修改。標(biāo)簽(Label)對象標(biāo)簽可以用來對其它沒有標(biāo)題的控件(如文本框32Left、Top、Width、Height、Visible、Enabled屬性與命令按鈕的意義相同。Name:對象名。AutoSize和WordWrap:這兩個(gè)屬性決定標(biāo)簽大小是否隨顯示的文本內(nèi)容變化,以及變化時(shí)是垂直還是水平擴(kuò)展。Caption:標(biāo)簽上顯示的文字內(nèi)容??梢允褂谩?”來為標(biāo)簽創(chuàng)建快捷鍵。標(biāo)簽本身并不能擁有輸入焦點(diǎn)。當(dāng)用戶按快捷鍵時(shí),會(huì)把焦點(diǎn)傳遞給Tab鍵次序中下一個(gè)可擁有焦點(diǎn)的控件。與文本框的Text屬性不同,標(biāo)簽控件Caption屬性的值不能由用戶直接修改,但可以由程序修改。
BorderStyle:當(dāng)此屬性為1時(shí),標(biāo)簽有邊框。默認(rèn)值為0,即無邊框。常用屬性標(biāo)簽(Label)對象Left、Top、Width、Height、Visibl33標(biāo)簽控件支持:Move方法、Click事件、DblClick事件與Change事件。當(dāng)標(biāo)簽Caption屬性值變化時(shí),引發(fā)Change事件。因?yàn)闃?biāo)簽控件主要的作用是描述其他控件,顯示的是形態(tài)文本。一般情況下,不必編寫其事件過程。Label對象的常用事件和方法打開【例2.5】標(biāo)簽控件支持:Move方法、Click事件、DblClick341.字母的大小寫問題,關(guān)鍵字2.語句:程序以語句為單位,一般情況下,一條語句占一行。3.續(xù)行:如果語句太長,可以分為連續(xù)的多行書寫,這時(shí),未完的行要以空格與下劃線(稱為“續(xù)行符”)結(jié)尾。注意分行時(shí)要避開關(guān)鍵字、對象名、過程名。如: lblMyFirst.Caption=lblMyFirst.Caption_ +123134.一行中寫多條語句:要在一行中寫多條語句,可在多條語句之間插入冒號作為分隔。如:txtFirst.Text=“Hello”:frmOpen.Top=1000:frmOpen.Left=1200VisualBasic語法規(guī)則1.字母的大小寫問題,關(guān)鍵字VisualBasic語法355.注釋:可在程序中加入以單引號開頭的解釋性的文字,單引號為“注釋符”,這些文字為注釋內(nèi)容。注釋內(nèi)容在程序執(zhí)行時(shí)被忽略。注意:在續(xù)行符后不能寫注釋。如:
'這是1999年3月11日編寫的 txtMy.Text=“您好!”'在文本框中向用戶問好
也可以用Rem進(jìn)行注釋6.行號與標(biāo)號7.英文符號與中文符號8.程序行的縮進(jìn),與源程序的美觀VisualBasic語法規(guī)則5.注釋:可在程序中加入以單引號開頭的解釋性的文字,單引36VisualBasic開發(fā)程序的主要步驟進(jìn)入VB集成開發(fā)環(huán)境添加對象,編寫代碼保存打開源程序*.vbp、*.frm*.frx、*.bas文件解釋性試運(yùn)行編譯可執(zhí)行文件*.exe文件完成未完成或出錯(cuò)1預(yù)備工作2建立界面3設(shè)置屬性4編寫代碼、進(jìn)行調(diào)試5編譯VisualBasic開發(fā)程序的主要步驟進(jìn)入VB集成開發(fā)環(huán)37工程中的模塊與文件
為編制一個(gè)應(yīng)用程序而創(chuàng)建的所有源文件統(tǒng)稱為一個(gè)“工程”(Project)。一個(gè)工程有一個(gè)工程文件(vbp,vbw),另外還有多個(gè)模塊文件。(1)窗體模塊窗體模塊包含窗體及其控件的定義、屬性設(shè)置,以及代碼窗口中的程序行。窗體文件的擴(kuò)展名為.frm,如果設(shè)置了對象的Icon或Picture屬性,會(huì)生成同名的.frx文件。(2)標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊包含數(shù)據(jù)類型、常數(shù)、變量、外部過程和公共過程的公共的或模塊級的定義。標(biāo)準(zhǔn)模塊文件以.bas為文件擴(kuò)展名。還可能用到其他類型的模塊。工程中的模塊與文件為編制一個(gè)應(yīng)用程序而創(chuàng)建的38(1)保存工程時(shí)先提示保存各模塊文件,最后提示保存工程文件。(2)打開工程時(shí),直接打開工程文件即可。(3)應(yīng)該將一個(gè)工程中的所有文件保存在同一個(gè)文件夾中,便于管理。(4)不能在VB集成環(huán)境之外移動(dòng)工程中的模塊文件或?qū)ζ溥M(jìn)行重命名。這樣會(huì)導(dǎo)致工程無法打開。保存和打開工程(1)保存工程時(shí)先提示保存各模塊文件,最后提示保存工程文件。39生成可執(zhí)行文件(1)通過“文件”菜單中的“生成”命令可執(zhí)行文件.exe??芍付蓤?zhí)行文件名和保存位置。(2)可執(zhí)行文件可脫離源程序與VB環(huán)境單獨(dú)運(yùn)行。(3)可執(zhí)行文件需要一些中間文件的支持才能運(yùn)行。生成可執(zhí)行文件(1)通過“文件”菜單中的“生成”命令可執(zhí)行文40第2章程序設(shè)計(jì)入門第2章程序設(shè)計(jì)入門41工具箱工程窗口屬性窗口窗體布局窗口窗體對象對象窗口VisualBasic6的集成開發(fā)環(huán)境代碼窗口立即窗口本地窗口主菜單主工具欄工具箱工程窗口屬性窗口窗體布局窗口窗體對象對象窗口Visua42PictureBox控件TextBox控件CommandButton控件OptionButton控件ListBox控件VScrollBar控件DriveListBox控件FileListBox控件Line控件Data控件Image控件Shape控件DirListBox控件Timer控件HScrollBar控件ComboBox控件CheckBox控件Frame控件Label控件VisualBasic工具箱窗口PictureBox控件TextBox控件Comma43VisualBasic集成環(huán)境的“工程”窗口和“屬性”窗口VisualBasic集成環(huán)境的44VisualBasic集成環(huán)境的“對象”窗口一、向窗體上添加控件的方法(1)單擊圖標(biāo),再拖動(dòng)(2)雙擊圖標(biāo)(3)Ctrl鍵+單擊圖標(biāo),再拖動(dòng)(4)復(fù)制+粘貼二、選擇控件的方法P20三、改變控件的大小和位置P21VisualBasic集成環(huán)境的“對象”窗口一、向窗體上45程序的設(shè)計(jì)、運(yùn)行和中斷狀態(tài)(1)設(shè)計(jì)狀態(tài)設(shè)置對象、編輯代碼。(2)運(yùn)行狀態(tài)解釋型地運(yùn)行程序。(3)中斷狀態(tài)調(diào)試程序,進(jìn)行排錯(cuò)。可以在三種狀態(tài)之間進(jìn)行切換。程序的設(shè)計(jì)、運(yùn)行和中斷狀態(tài)(1)設(shè)計(jì)狀態(tài)46窗體(Form)對象
窗體是窗口的框架,是VB程序最基本的對象,是各類控件的容器。VB開發(fā)環(huán)境為每個(gè)窗體模塊自動(dòng)地創(chuàng)建了一個(gè)窗體對象。窗體(Form)對象窗體是窗口的框架,是VB47重溫對象的PME模型任何對象都可以從以下三個(gè)方面進(jìn)行描述:(1)“屬性”(Property)對象所具有的特性。(2)“方法”(Method)對象可能執(zhí)行的操作或行為。(3)“事件”(Event)對象可以識別并作出反應(yīng)的外部刺激。重溫對象的PME模型任何對象都可以從以下三個(gè)方面進(jìn)行描述:48Name:對象名。用于標(biāo)識對象的字符串。對象名必須滿足以下條件:(1)必須以字母開頭(2)可以包含字母、數(shù)字和下劃線,不能包括標(biāo)點(diǎn)和空格(3)不能多于40個(gè)字符(4)不能與其它公共對象重名,可以與關(guān)鍵字相同,但應(yīng)避免(5)在同一模塊下,不能重名(6)建議為對象名加上類型前綴Form對象的常用屬性P339附錄BName:對象名。用于標(biāo)識對象的字符串。對象名必須滿足以下條49Caption:顯示在窗體標(biāo)題欄上的文字。Icon:窗體圖標(biāo)。與一圖標(biāo)文件相聯(lián)系。如為“無”則使用默認(rèn)圖標(biāo)。Visible:窗體是否可見,True或False。Form對象的常用屬性Left、Top屬性:窗體相對于屏幕的位置(原點(diǎn)為屏幕左上方)。坐標(biāo)值的默認(rèn)單位是緹(twip),1緹等于1/567厘米。Width、Height屬性:窗體的寬度與高度。默認(rèn)單位也是緹。Moveable屬性:True/False,F(xiàn)alse時(shí)窗體不能被鼠標(biāo)拖動(dòng)。Enabled屬性:True/False,F(xiàn)alse時(shí)窗體及上面的控件不響應(yīng)用戶的操作。Picture屬性:指定一個(gè)圖片文件,作為窗體的背景圖。Caption:顯示在窗體標(biāo)題欄上的文字。Icon:窗體圖標(biāo)50BorderStyle:邊框類型。決定窗體是否可縮放、標(biāo)題欄是正常還是窄、是否在任務(wù)欄上出現(xiàn)等。該屬性對MinButton、MaxButton屬性的設(shè)置有影響。ControlBox:窗體是否有圖標(biāo)、系統(tǒng)菜單和最大化、最小化與關(guān)閉按鈕。WindowState屬性:取值為0、1、2,決定窗體還原、最小化、最大化狀態(tài)。MaxButton與MinButton:是否顯示最大化與最小化按鈕,值為True或False。只有二者均為False時(shí)才不顯示,否則設(shè)為False則只以無效顯示。Form對象的常用屬性當(dāng)ControlBox、BorderStyle、WindowState屬性,與MaxButton與MinButton屬性有矛盾時(shí),后者服從于前者。注意BorderStyle:邊框類型。決定窗體是否可縮放、標(biāo)題欄51屬性的分類設(shè)計(jì)時(shí)對象屬性的更改(1)在設(shè)計(jì)(利用屬性窗口)和運(yùn)行狀態(tài)(通過程序代碼)都可設(shè)置的屬性。(2)只能在設(shè)計(jì)時(shí)設(shè)置,不能在運(yùn)行時(shí)設(shè)置的屬性。如對象的Name屬性。稱為只讀屬性。(3)只能在運(yùn)行時(shí)設(shè)置,不能在設(shè)計(jì)時(shí)設(shè)置的屬性。如窗體CurrentX、CurrentY屬性,在屬性窗口中不可見,稱為運(yùn)行時(shí)屬性(4)在設(shè)計(jì)和運(yùn)行狀態(tài)下都可設(shè)置,但只有在運(yùn)行時(shí)才能生效的屬性。如Visible屬性。在屬性窗口內(nèi)完成,方式有:利用鍵盤輸入在已提供的選項(xiàng)中選擇利用對話框?qū)傩缘姆诸愒O(shè)計(jì)時(shí)對象屬性的更改(1)在設(shè)計(jì)(利用屬性窗口)和52運(yùn)行時(shí)對象屬性的讀寫方法訪問對象屬性的格式:
對象名.屬性名如:Form1.Caption通過此格式可以讀取屬性的值,也可以設(shè)置屬性的值。如:Form1.Caption="你好!VisualBasic"或:x=Form1.Left賦值語句廣泛用于程序代碼的編寫中運(yùn)行時(shí)對象屬性的讀寫方法訪問對象屬性的格式:賦值語句廣泛用于53Move方法,語法為:對象名.MoveLeft,Top,Width,Height該方法將object對象移動(dòng)到以left,top定義的新位置。同時(shí)可以改變該對象的大小(以width,height為新的寬與高)。其中l(wèi)eft參數(shù)必須給定。但是,要給定任何其它的參數(shù),必須先給定出現(xiàn)在語法中該參數(shù)前面的全部參數(shù)。例:設(shè)frmFirst為一窗體對象名。frmFirst.Move1000,1000,1200,2000‘既移動(dòng)位置,又改變大小frmFirst.Move1000,1000 ‘只移動(dòng)frmFirst.Move1000 ‘只左右移動(dòng)frmFirst.Move1000,,1200 ‘錯(cuò)誤,缺少參數(shù)Move方法同時(shí)改變了Left,Top,Width與Height屬性的值。效果與分別設(shè)置這些屬性的值等效。Form對象的常用方法
某些方法的執(zhí)行改變一些屬性的值,有些方法的執(zhí)行結(jié)果可能受一些屬性的影響。方法的執(zhí)行可能等效于對一些屬性的修改。Move方法,語法為:例:設(shè)frmFirst為一窗體對象名。54Hide方法隱藏窗體語法為:
對象名.Hide
此方法將object對象隱藏,并將其Visible屬性設(shè)置為False。窗體被隱藏之后,就不能響應(yīng)用戶的操作。該方法無參數(shù)。Form對象的常用方法Show方法:使窗體從隱藏狀態(tài)變?yōu)轱@示狀態(tài)。對象名.ShowShow方法有兩個(gè)參數(shù),將在第11章講解。Hide方法隱藏窗體Form對象的常用方法Show方法:55Print方法:在窗體表面上顯示內(nèi)容。對象名.Print[“,|;”分隔的輸出項(xiàng)]Print支持以逗號或分號分隔的多個(gè)輸出項(xiàng)的值,每個(gè)輸出項(xiàng)可以是屬性、變量、常量或表達(dá)式?!?,”按制表列輸出,“;”按緊湊格式輸出。默認(rèn)情況下,每調(diào)用一次Print方法將在窗體上顯示一行內(nèi)容。調(diào)用Print語句的末尾以“,”或“;”結(jié)尾,則不自動(dòng)換行。Print方法的詳細(xì)用法見第10章。Print方法:在窗體表面上顯示內(nèi)容。56事件是對象能夠識別的外部刺激,該刺激既可能來自于用戶,也可能來自于操作系統(tǒng)。在VB中,每一類對象能支持什么事件是已經(jīng)定義好的,并且每個(gè)事件都有事件名。某個(gè)對象支持一個(gè)事件就說明它能識別這個(gè)事件,那么要讓它對這個(gè)事件作出反應(yīng)以及如何反應(yīng),則必須編寫這個(gè)對象的“事件過程”。
窗體Form對象的常用事件程序設(shè)計(jì)者在工程中添加了窗體和控件等對象并設(shè)置了初始屬性之后,就該編寫它們的事件過程,這樣在程序運(yùn)行過程中,各種對象才能對用戶的操作作出反應(yīng),并完成程序指定的任務(wù)。事件是對象能夠識別的外部刺激,該刺激既可能來自于用戶57窗體Form對象的常用事件在VB中,所有對象事件過程的語法結(jié)構(gòu)都是:PrivateSub過程名(參數(shù))…'(VB語句)EndSub其中過程名不能隨便給定。對于窗體對象,事件過程名是“Form_事件名”;對于各種控件對象,事件過程名是“對象名_事件名”。事件過程是否有參數(shù),有幾個(gè)參數(shù),因事件的不同而不同。事件過程總是以“EndSub”表示過程的結(jié)束。
用戶可以把想讓對象對該事件所做的反應(yīng)以VB語句的形式寫在事件過程中。在一個(gè)對象的事件過程中,可以設(shè)置其自身的或其它的對象的屬性、執(zhí)行其自身的或其它的對象的方法、甚至可以調(diào)用自身的或其它的對象的事件過程。窗體Form對象的常用事件在VB中,所有對象事件過程58Click事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)單擊鼠標(biāo)左鍵或右鍵時(shí)引發(fā)。Click事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。窗體的Click事件語法: PrivateSubForm_Click() ……(語句組) EndSub窗體Form對象的常用事件Click事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)單擊鼠標(biāo)左鍵59DblClick事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)快速雙擊鼠標(biāo)鍵時(shí)引發(fā)。DblClick事件過程:接收到DblClick事件時(shí)執(zhí)行的代碼,DblClick過程語法格式: PrivateSubForm_DblClick() ……(語句) EndSubResize事件:當(dāng)窗體因任何原因大小發(fā)生變化時(shí)(或第一次顯示窗體時(shí))引發(fā)該事件。在拖動(dòng)邊框窗體改變大小時(shí),會(huì)連續(xù)引發(fā)多個(gè)Resize事件。Load事件:窗體在加載顯示時(shí)引發(fā)此事件,常用來對窗體或控件進(jìn)行初始化。窗體Form對象的常用事件DblClick事件:當(dāng)用戶在窗體上(除標(biāo)題欄和邊框)快速雙60“代碼”窗口的使用打開【例2.2】打開【例2.1】事件過程就是一個(gè)事件發(fā)生時(shí)執(zhí)行的程序代碼。每個(gè)事件過程都是相互獨(dú)立的,事件過程排列的前后順序無關(guān)緊要。VB的程序設(shè)計(jì)方式既是面向?qū)ο蟮?,又是事件?qū)動(dòng)的?!按a”窗口的使用打開【例2.2】打開【例2.1】事件過程就61Left、Top:命令按鈕在窗體上的位置。坐標(biāo)值的默認(rèn)單位是緹。Width、Height:按鈕的寬度與高度。默認(rèn)單位也是緹。Visible:True或False。該按鈕是否可見(運(yùn)行時(shí)起作用)。Name:對象名。要符合VB對對象名的要求。建議為按鈕對象名加上“cmd”前綴。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Left、Top:命令按鈕在窗體上的位置。坐標(biāo)值的默認(rèn)單位62Caption:顯示在按鈕表面上的文字??梢允褂谩?”字符與其后的字母組成快捷鍵。Enabled:True或False。False時(shí)按鈕變灰,不能響應(yīng)點(diǎn)擊。Value:將該屬性設(shè)為True可以觸發(fā)按鈕對象的Click事件。只能在運(yùn)行時(shí)設(shè)置。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Caption:顯示在按鈕表面上的文字??梢允褂谩?”字符與63Default:若該屬性為True,則按鈕對象為默認(rèn)按鈕。不管焦點(diǎn)
在哪個(gè)控件上,用戶按回車鍵,均觸發(fā)按鈕的Click事件。默認(rèn)按鈕有較粗的邊框。一個(gè)窗體上只能有一個(gè)按鈕的Default屬性為True。Cancel:若該屬性為True,則按鈕對象為默認(rèn)的“取消”按鈕。不管焦點(diǎn)在哪個(gè)控件上,用戶按“ESC”鍵,均觸發(fā)按鈕的Click事件。常用屬性TopTopLeftLeftWidth命令按鈕(CommandButton)對象Default:若該屬性為True,則按鈕對象為默認(rèn)按鈕。不64Move方法,此方法在窗體上移動(dòng)按鈕對象,參數(shù)的意義與窗體的Move方法相同。object.MoveLeft,Top,Width,Height命令按鈕對象的常用方法和事件Move方法,此方法在窗體上移動(dòng)按鈕對象,參數(shù)的意義與窗體的65Click事件:當(dāng)用戶在按鈕表面上單擊鼠標(biāo)左鍵產(chǎn)生Click事件。另外下列方法也能觸發(fā)按鈕的Click事件:(1)用Tab鍵把焦點(diǎn)移動(dòng)到該按鈕上,然后按空格或回車鍵。(2)按快捷鍵(Alt+具有下劃線的字母)(3)如為窗體的缺省按鈕,按回車鍵。(4)如為窗體的默認(rèn)“取消”按鈕,按ESC鍵。(5)在運(yùn)行階段設(shè)置屬性:object.Value=TrueClick事件過程:當(dāng)對象接收到Click事件時(shí)所執(zhí)行的代碼。按鈕的Click事件語法: PrivateSubobject_Click() ……(語句組) EndSub命令按鈕對象不支持鼠標(biāo)雙擊事件,即無DblClick事件。雙擊操作被理解為兩個(gè)單擊操作。命令按鈕對象的常用方法和事件Click事件:當(dāng)用戶在按鈕表面上單擊鼠標(biāo)左鍵產(chǎn)生Click66窗體與控件事件過程名的區(qū)別:對于窗體對象,其事件過程名為“Form_事件名”,與其對象名無關(guān)。對于控件對象,其事件過程名為“對象名_事件名”,用到了其對象名。命令按鈕對象的常用方法和事件打開【例2.3】窗體與控件事件過程名的區(qū)別:命令按鈕對象的常用方法和事件打開67Left、Top、Width、Height、Visible、Enabled屬性與命令按鈕的意義相同。Name:對象名。Text:文本框中的文本內(nèi)容(默認(rèn)屬性)。文本框(TextBox)對象的常用屬性Left、Top、Width、Height、Visibl68MaxLength:限制文本框中的文本的最大長度(字符個(gè)數(shù))。如果為0,則長度只受系統(tǒng)限制。文本框(TextBox)對象的常用屬性Appearance:文本框是平面的還是立體的。Locked:為True文本框的內(nèi)容不能被編輯(與將Enabled設(shè)置為False不同,Enabled為False時(shí)會(huì)將對文本框的鼠標(biāo)操作傳遞給窗體)。MaxLength:限制文本框中的文本的最大長度(字符個(gè)數(shù))69SelLength、SelStart和SelText:分別為當(dāng)前選定文本的長度、選定文本的起始位置(以0為起點(diǎn))與選定文本的內(nèi)容。這三屬性只在運(yùn)行時(shí)使用。文本框(TextBox)對象的常用屬性Alignment:文本框中文本相對于文本框的對齊方式。須將MultiLine設(shè)為True。PasswordChar:設(shè)置口令字符。須將MultiLine設(shè)為False才能生效。MultiLine:為True時(shí),文本框中可以顯示多行內(nèi)容,最多可包含32K個(gè)字符。False時(shí),忽略換行符,最多可包含2048。ScrollBars:設(shè)置文本框的滾動(dòng)條,有0~3共4個(gè)取值。只有MultiLine屬性為True時(shí),此屬性才有意義。SelLength、SelStart和SelText:分70Move方法:用法與窗體相同。Click事件、DblClick事件:因?yàn)槲谋究蚩丶丫哂袃?nèi)在的編輯功能,一般不必編寫其Click和DlbClick事件過程。Change事件:當(dāng)文本框的內(nèi)容發(fā)生改變時(shí)引發(fā)Change事件。
PrivateSubobject_Change() ……(語句) EndSub文本框(TextBox)對象的方法與事件打開【例2.4】Move方法:用法與窗體相同。Change事件:當(dāng)文本框的內(nèi)71
標(biāo)簽可以用來對其它沒有標(biāo)題的控件(如文本框)進(jìn)行說明,也可用來顯示一些程序運(yùn)行過程中的提示信息。標(biāo)簽對象顯示的內(nèi)容不能由用戶直接修改,但可由程序代碼修改。標(biāo)簽(Label)對象標(biāo)簽可以用來對其它沒有標(biāo)題的控件(如文本框72Left、Top、Width、Height、Visible、Enabled屬性與命令按鈕的意義相同。Name:對象名。AutoSize和WordWrap:這兩個(gè)屬性決定標(biāo)簽大小是否隨顯示的文本內(nèi)容變化,以及變化時(shí)是垂直還是水平擴(kuò)展。Caption:標(biāo)簽上顯示的文字
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZNZ 264.2-2024 重金屬中度污染農(nóng)田土壤修復(fù)和安全利用技術(shù)規(guī)范 第2部分:超積累東南景天與中稻輪作
- T-ZZB 3744-2024 制革用陰離子型磺化油
- T-ZMDS 20008-2024 醫(yī)療器械嵌入式軟件漏洞評估方法
- 2025年度解除農(nóng)業(yè)合作項(xiàng)目的聲明書
- 二零二五年度綠化苗木購銷與城市綠化養(yǎng)護(hù)服務(wù)合同
- 二零二五年度實(shí)習(xí)教師與教育機(jī)構(gòu)教育咨詢服務(wù)合同
- 二零二五年度共享住宅租賃正規(guī)協(xié)議書范本及環(huán)保要求
- 二零二五年度勞動(dòng)合同主體變更及培訓(xùn)交接服務(wù)合同
- 2025年度水產(chǎn)養(yǎng)殖水質(zhì)改良與養(yǎng)魚合同
- 二零二五年度人社部員工勞動(dòng)合同勞動(dòng)合同電子簽名與認(rèn)證合同
- 2025年上半年潛江市城市建設(shè)發(fā)展集團(tuán)招聘工作人員【52人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 旋轉(zhuǎn)類機(jī)電設(shè)備故障預(yù)測、診斷研究
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項(xiàng)目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 新媒體營銷(第三版) 課件全套 林海 項(xiàng)目1-6 新媒體營銷認(rèn)知-新媒體營銷數(shù)據(jù)分析
- 愚公移山英文 -中國故事英文版課件
- 集團(tuán)公司各職能部管控分權(quán)手冊
- 機(jī)車電測儀表使用及檢修
- PMS顏色對照表
- 營銷手冊范本匯總(24個(gè)共)35.doc
- 2012年北京大學(xué)醫(yī)學(xué)部外國留學(xué)生本科入學(xué)考試
- 七年級英語閱讀理解50篇(附答案)
評論
0/150
提交評論