




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2023/11/22VB的基本數(shù)據(jù)類型
“數(shù)據(jù)”是信息在計算機內(nèi)的表現(xiàn)形式,也是程序的處理對象。不同類型的數(shù)據(jù)有不同的操作方式和不同的取值范圍。
VB具有系統(tǒng)定義的基本數(shù)據(jù)類型,而且允許用戶根據(jù)需要定義自己的數(shù)據(jù)類型。
VB提供的基本數(shù)據(jù)類型主要有: 字符串型、數(shù)值型、邏輯型和日期型。2023/11/22例2.1A+B與
A*B。設(shè)計一個窗體,在窗體上添加一個命令按鈕。運行程序時,單擊“開始”,程序?qū)⒁筝斎階和B,并在窗體顯示計算結(jié)果。(結(jié)果為什么存在問題)
2023/11/22字符串型
字符串(String)是一個字符序列,由放在一對雙引號中的ASCII字符(除雙引號和回車符之外)、漢字及其它可打印字符組成。例如:以下是合法的VB字符串,“Hello”“Wearestudents.”“中華人民共和國”“2+3=?”“2000”“#####”“¥25,000.00”“”(空字符串)2023/11/22字符串型
值得注意的是:字符串中包含的字符個數(shù)稱為字符串長度。在VB6.0中,把漢字作為一個字符處理。字符串分為變長字符串和定長字符串。長度為0(即不含任何字符的字符串)稱為空字符串。雙引號在程序代碼中起字符串的界定作用。在字符串中,字母的大小寫是有區(qū)別的。例如,字符串“ABC”與“abc”是兩個不相等的字符串。2023/11/22數(shù)值型
VB的數(shù)值型數(shù)據(jù)分為整型數(shù)和實型數(shù)兩大類。2023/11/22整型
整型數(shù)是不帶小數(shù)點和指數(shù)符號的數(shù)。十進制整型數(shù)由0~9的數(shù)字序列組成,可以帶正號或負(fù)號。例如:147589565,-3145,327009等都是十進制整數(shù)。2023/11/22整型
整型數(shù)按示數(shù)范圍的不同分為整數(shù)、長整數(shù)和字節(jié)型整數(shù)。整型數(shù)和長整數(shù)還可以有三種表示形式,即十進制、八進制和十六進制。2023/11/22整型
2023/11/22實型
實型數(shù)是帶有小數(shù)部分的數(shù),分為浮點數(shù)和定點數(shù)。
浮點數(shù)由三部分組成:符號、指數(shù)及尾數(shù)。2023/11/22邏輯型邏輯型數(shù)據(jù)(Boolean)以2個字節(jié)(16位)存儲。邏輯值邏輯真邏輯假True(-1)False(0)2023/11/22日期型日期型(Date)數(shù)據(jù)存儲為8個字節(jié)(64位)浮點數(shù)值形式??梢员硎镜娜掌诜秶鷱?00年1月1日到9999年12月31日,時間可以從0:00:00到23:59:59。2023/11/22VB常量與變量
內(nèi)部常量
用戶自定義常量根據(jù)VB數(shù)據(jù)類型,一般常量有整型常量、長整型常量、單精度型常量、雙精度型常量、字節(jié)型常量、字符串型常量、邏輯型常量和日期型常量。用戶自定義常量分一般常量和符號常量兩種形式。
2023/11/22Const語句的一般格式:Const常量名[As類型名]=表達(dá)式
下面是正確的符號常量定義語句。Constpi=3.14159'定義pi是單精度符號常量,其值為3.14159ConstmaxAsInteger=70'定義max是整型符號常量,其值為702023/11/22變量在程序中,其值可以改變的稱為變量。變量名是變量的標(biāo)識。變量名的命名規(guī)則同常量名。變量具有名稱、類型和值三個屬性。VB有兩種類型變量:屬性變量和一般變量。
一般變量是由用戶自己定義的。定義變量常用Dim語句,格式如下:Dim變量名1[AS類型1][,變量名2[As類型2]]
例如:Dimchr1AsString2023/11/22算術(shù)運算符和算術(shù)表達(dá)式在VB中,算術(shù)運算符有:乘方號(^)、取負(fù)號(-)、乘號(*)、除號(/)、整除號(\)、求余運算符(Mod)、加號(+)和減號(-)。
PrivateSubCommand1_Click()Print25\5*5EndSub輸出結(jié)果為1。因為先計算乘法,再完成整除25\25的運算。
2023/11/22字符串運算符和字符串表達(dá)式在VB中,字符串運算符有:加號(+)和字符串連接運算符號(&)。兩個運算符的作用相同,都是將兩個字符串連接成一個字符串。例如:“面向?qū)ο蟆?“程序設(shè)計”結(jié)果仍是一個字符串:"面向?qū)ο蟪绦蛟O(shè)計"“面向?qū)ο蟆?“程序設(shè)計”結(jié)果仍是一個字符串:"面向?qū)ο蟪绦蛟O(shè)計
2023/11/22關(guān)系運算符和關(guān)系表達(dá)式在VB中,關(guān)系運算符有:大于號(>)、小于號(<)、大于等于號(>=)、小于等于號(<=)、等于號(=)和不等于號(<>或><)。
關(guān)系表達(dá)式的一般格式:表達(dá)式
關(guān)系運算符
表達(dá)式
2023/11/22邏輯運算符和邏輯表達(dá)式在VB中,常用的邏輯運算符有:非(Not)、與(And)、或(Or)、異或(Xor)、等價(Eqv)和蘊含(Imp)。邏輯運算符,用來對兩個邏輯量進行運算,運算的結(jié)果是邏輯型的,結(jié)果值True表示真,F(xiàn)alse表示假。邏輯表達(dá)式的一般格式:表達(dá)式邏輯運算符表達(dá)式例如:A+B=CAndX=Y是邏輯表達(dá)式,在求解該表達(dá)式時,先完成算數(shù)運算,再解決關(guān)系運算,最后進行邏輯運算。整個表達(dá)式的含義是,當(dāng)A+B等于C并且X等于Y時,該表達(dá)式的結(jié)果為真。
2023/11/22VB常用內(nèi)部函數(shù)
例2.2
飛機高度。設(shè)計一個窗體,在窗體上添加一個名為“計算”的命令按鈕。運行程序時,單擊“計算”輸出雷達(dá)搜索到飛機的高度。設(shè)雷達(dá)在仰角300時發(fā)出電波,在B點碰到飛機,經(jīng)過1/3000秒收到來自飛機的回波。電波的速度為3×108米/秒,問飛機的高度。
2023/11/22常用數(shù)學(xué)函數(shù)常用數(shù)學(xué)函數(shù)主要包括三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)、平方根函數(shù)、絕對值函數(shù)等,它們與數(shù)學(xué)上的定義一致。注意:?
所有數(shù)學(xué)函數(shù)的自變量是數(shù)值型,計算結(jié)果也是數(shù)值型。?
自變量可以是常數(shù)、變量或表達(dá)式,還可以是函數(shù)。?
表中的三角函數(shù)自變量的單位為弧度。?
Sgn(n)函數(shù),當(dāng)n<0返回-1,當(dāng)n=0返回0,當(dāng)n>0返回1。Rnd(n)函數(shù)產(chǎn)生一個0~1之間的隨機雙精度數(shù),包括0,但并不包括1。
2023/11/22常用轉(zhuǎn)換函數(shù)常用轉(zhuǎn)換函數(shù)主要包括數(shù)值型數(shù)據(jù)與字符型數(shù)據(jù)之間的轉(zhuǎn)換,以及數(shù)值型數(shù)據(jù)之間的轉(zhuǎn)換。
常用Val函數(shù)把輸入的數(shù)字字符串轉(zhuǎn)換成數(shù)值,用Str函數(shù)把要輸出的數(shù)值轉(zhuǎn)換成字符串。運行下面程序,和例2.2結(jié)果相同。OptionExplicitPrivateSubCommand1_Click()ConstVg=300000000#ConstPi=3.1415DimOB,ABOB=Vg/3000/2AB=OB*Sin(30*Pi/180)Print"飛機的高度是:"+Str(AB)+"米"EndSub2023/11/22
Asc和Chr是一對互逆函數(shù),Chr只能計算一個字符串首字符的ASCII編碼,控制字符可以使用Chr函數(shù)輸入。運行下面程序,觀察結(jié)果(見圖2.6轉(zhuǎn)換函數(shù))。PrivateSubCommand1_Click()PrintChr(Asc("A")),Chr(Asc("ABC"))PrintAsc("A"),Asc("ABC")PrintTrim(Asc("A")),Trim(Asc("ABC"))Print"顯示在上一行"+Chr(13)+Chr(10)+"顯示在下一行"EndSub2023/11/22常用字符串函數(shù)VB6.0在字符存儲和處理中,采用了Unicode編碼。Unicode編碼將一個漢字和一個西文字符都視為一個字符,占用兩個字節(jié)存儲。
PrivateSubCommand1_Click()str1="字符串函數(shù)與運算"
str2=Mid(str1,4,2)Printstr2N=InStr(str1,str2)PrintN,InStr(str1,"字符子串")
Printstr1+"的長度是"+Str(Len(str1))PrintLCase("abCDef")+Space(3)+UCase("abCDef")PrintString(10,"─")Print"茶好吃",StrReverse("茶好吃")EndSub2023/11/22InputBox函數(shù)InputBox函數(shù)的返回一個字符串。在調(diào)用InputBox函數(shù)時,系統(tǒng)將彈出一個對話框,該對話框能接收用戶輸入數(shù)據(jù)。InputBox函數(shù)一般格式如下:
InputBox(提示信息[,標(biāo)題][,確省值])PrivateSubCommand1_Click()DimLL=Val(InputBox("長度(厘米)","輸入"))
Print"長度(厘米):";LPrint"長度(Twip):";567*LEndSub2023/11/22窗體
窗體是程序員的“工作臺”,用以可視化地建立應(yīng)用程序。窗體是VB
中一個重要的對象,它除了具有自己的屬性、方法外,還可放置除了窗體之外的其它控件。
VB的窗體和控件是具有自己的屬性、方法和事件的對象。屬性就是對象的性質(zhì),方法就是對象的動作,事件就是對象的響應(yīng)。2023/11/22窗體屬性
窗體的屬性:決定了窗體的外觀和操作。設(shè)置方法:通過屬性窗口設(shè)置和通過程序代碼設(shè)置。2023/11/22窗體主要屬性Name(名稱)標(biāo)識符,是程序代碼中使用的對象名。Caption(標(biāo)題)字符型,設(shè)定或返回窗體標(biāo)題欄中顯示的文本。BackColor(背景顏色)返回或設(shè)置背景顏色。ForeColor(前景顏色)返回或設(shè)定前景顏色。Height、Width(高、寬)數(shù)值型,返回或指定窗體的高度和寬度。Left、Top(左邊、頂邊位置)數(shù)值型,返回或確定窗體左上角的位置。2023/11/22用不同的字體、字型和字號時在窗體顯示“航空英雄楊立偉”。例2.4航空英雄楊立偉。設(shè)計一個窗體,窗體的標(biāo)題為“航空英雄楊立偉”,并為窗體加載一幅圖片。運行程序時,單擊窗體,用不同的字體、字型和字號時在窗體顯示“航空英雄楊立偉”。2023/11/22窗體事件
MicrosoftWindows操作系統(tǒng)連續(xù)地監(jiān)視每一個窗口的活動或事件的信號。事件可通過單擊鼠標(biāo)或按下按鍵等操作產(chǎn)生,也可通過程序控制產(chǎn)生,還可由另一個窗口的操作產(chǎn)生。2023/11/22窗體主要事件Click事件用鼠標(biāo)單擊某個對象就觸發(fā)了Click事件,調(diào)用相應(yīng)的事件過程。DblClick事件用鼠標(biāo)雙擊某個對象就觸發(fā)了DblClick事件,調(diào)用相應(yīng)的事件過程。Load事件Load是把窗體裝入內(nèi)存工作區(qū)時發(fā)生的事件。在缺省情況(AutoReDraw=False)下,Load事件過程是不能在窗體中顯示輸出的。2023/11/22窗體主要事件Activate事件Load事件發(fā)生后,系統(tǒng)還會自動產(chǎn)生一個Activate事件。Activate事件過程處理完成后,程序進入“等待事件”狀態(tài),當(dāng)某一事件發(fā)生,就對其過程進行處理,之后再等待下一事件發(fā)生。UnLoad事件當(dāng)用戶關(guān)閉窗體時,會發(fā)生一個Unload事件。Resize事件Resize事件是當(dāng)程序運行后,窗體的大小被改變時觸發(fā)的事件。2023/11/22Print方法格式:[對象名.]Print[表達(dá)式[,|;[表達(dá)式]…]]說明:(1)對象名可以是窗體、立即窗口、圖片框、打印機。(2)表達(dá)式可以是數(shù)值或字符串表達(dá)式。(3)當(dāng)輸出多個表達(dá)式時用分隔符隔開。逗號:分區(qū)格式輸出,以14個字符為一區(qū);分號或空格:緊湊格式輸出。(4)執(zhí)行Print方法時,命令行的末尾有逗號或分號,則下一次Print方法在同一行接著打印,否則下次Print方法另起一行。窗體主要方法2023/11/22Cls方法格式:[<對象名>.]ClsCls用于清除由Print方法顯示的文本或在圖片框中顯示的圖形,并把光標(biāo)移到對象的左上角(0,0)。窗體主要方法2023/11/22Move方法格式:[對象名.]Move左邊距[,上邊距[,寬度[,高度]]]
Move方法可在程序中移動窗體和控件,并可以改變其大小。窗體主要方法2023/11/22綜合運用
例2.5可擴大的窗體。設(shè)計一個窗體,窗體的標(biāo)題為“可擴大的窗體”,在界面設(shè)計時為窗體加載一幅任意圖形。運行程序時,單擊窗體使窗體的長和寬都擴大原來的1.1倍,并使窗體居中顯示。
例2.6變色窗體。設(shè)計一個窗體,窗體的標(biāo)題為“變色窗體”。運行程序時,單擊窗體,使窗體變成綠色,并使窗體向下和向右都移動100Twip,同時在窗體輸出窗體的位置。單擊窗體的關(guān)閉按鈕,使窗體變成紅色,同時在窗體的標(biāo)題輸出系統(tǒng)時間。2023/11/22順序結(jié)構(gòu)程序設(shè)計
在事件驅(qū)動機制中,由用戶激發(fā)的某個事件去執(zhí)行相應(yīng)的事件過程。這些事件處理過程之間并無特定的執(zhí)行順序,但每個事件過程內(nèi)部卻包含著三種結(jié)構(gòu)。在順序結(jié)構(gòu)中,語句將按照出現(xiàn)的順序逐條執(zhí)行。
2023/11/22例3.1
簡單電路。R1=10歐,R2=20歐,R3=30歐,電源電壓恒定不變,若開關(guān)S1閉合,S2斷開時,電流表的讀數(shù)是0.3A,求(1)電源電壓多大?(2)當(dāng)S1和S2都斷開時,電流表的讀數(shù)多大?(3)當(dāng)S1、S2都閉合時,電流表的讀數(shù)是多大?
2023/11/22變量名=表達(dá)式或:[對象名.]屬性名=表達(dá)式賦值語句的含義是:(1)計算賦值號右邊表達(dá)式的值;(2)將此值賦給賦值號左邊的標(biāo)識符代表的變量或控件屬性,作為它的當(dāng)前值;(3)該值一直保存到下一次再對它賦值為止。賦值語句基本含義2023/11/22賦值相容
賦值語句中的標(biāo)識符代表一個存儲單元。執(zhí)行賦值語句時,如果這個存儲單元的結(jié)構(gòu)和大小能夠正確地表示賦值號右邊的表達(dá)式的值,那么,就稱該賦值語句是賦值相容的。2023/11/22數(shù)值型與字符串型
1.如果字符串的形式表示數(shù)值,則可將字符串賦予數(shù)值變量。也可將數(shù)值賦予字符串變量。2.如果把非數(shù)值形式的字符串賦給數(shù)值變量,則會出現(xiàn)運行錯誤。3.把一個整數(shù)賦給一個實變量,將不會出什么錯;4.當(dāng)把一個長整數(shù)賦給一個單精度變量,就可能會受示數(shù)精度的影響。2023/11/22注釋語句格式:‘注釋內(nèi)容
撇號說明:
1.此語句僅起注釋作用,不被解釋和編譯。2.任何字符(包括漢字)都可以作為注釋內(nèi)容。3.此語句可放在過程、模塊的開頭,也可放在執(zhí)行語句的后面,但必須是一行中的最后一個語句。2023/11/22暫停語句格式:Stop說明:1.可放在過程中的任何地方,用來暫停程序執(zhí)行,相當(dāng)于設(shè)置斷點。2.類似于Run菜單中的Break命令,系統(tǒng)將自動打開立即窗口(Debug),方便程序員調(diào)試跟蹤程序。3.調(diào)試完畢,生成可執(zhí)行文件之前,應(yīng)刪去所有的Stop語句。2023/11/22結(jié)束語句格式:End說明:1.通常用來結(jié)束程序的執(zhí)行。2.程序沒有End語句,或雖然有,但沒執(zhí)行,運行沒有影響,但不能正常結(jié)束。3.為了保持完整性,程序應(yīng)該通過End語句結(jié)束執(zhí)行。4.其它用途:EndSub結(jié)束一個Sub過程EndFunction結(jié)束一個Function過程EndIf結(jié)束一個If語句塊EndType結(jié)束記錄類型定義EndSelect結(jié)束情況語句2023/11/22命令按鈕(CommandButton)控件
命令按鈕是最常使用的控件之一。命令按鈕最多設(shè)置的屬性是Caption,一般使用屬性窗口設(shè)置該屬性,以便修改命令按鈕的標(biāo)題。命令按鈕最常使用的事件是Click。
2023/11/22命令按鈕屬性(1)(名稱)在程序中它是識別命令按鈕的標(biāo)識符。窗體中第一個建立的命令缺省名稱是Command1,后續(xù)的命令按鈕缺省名稱分別是Command2、Command3等。名稱屬性為只讀屬性。只讀屬性的含義是,這樣的屬性只允許在界面設(shè)計時修改,在程序中不能修改這樣的屬性。(2)Caption屬性Caption屬性是字符串類型,是顯示在命令按鈕上的標(biāo)題。即可以在界面設(shè)計時通過屬性窗口修改,也可以使用代碼設(shè)置。
2023/11/22(3)Default屬性Default屬性是布爾類型,當(dāng)命令按鈕的Default屬性設(shè)置為True時,按回車鍵等效于用鼠標(biāo)單擊該按鈕。一個窗體只能有一個命令按鈕的Default屬性設(shè)置為True。命令按鈕的Default屬性缺省值為False。(4)Cancel屬性Cancel屬性是布爾類型,當(dāng)命令按鈕的Cancel屬性設(shè)置為True時,按Esc鍵等效于用鼠標(biāo)單擊該按鈕。一個窗體只能有一個命令按鈕的Cancel屬性設(shè)置為True。命令按鈕的Cancel屬性缺省值為False。
2023/11/22(5)Style屬性和Picture屬性Style屬性決定命令按鈕的外觀,只能取0或1。當(dāng)此屬性設(shè)置為0時,表示標(biāo)準(zhǔn)命令按鈕,該按鈕只能顯示文字,并且不能改變背景顏色和前景顏色,更不能顯示圖標(biāo)。當(dāng)此屬性設(shè)置為1時,表示圖形命令按鈕,圖形即能顯示文字,能改變背景顏色和前景顏色,也能顯示圖標(biāo)。命令按鈕的Picture屬性同窗體的Picture屬性,用來顯示圖形。(6)ToolTipText屬性ToolTipText屬性是字符串類型,用于設(shè)置命令按鈕的提示信息,運行程序過程中,若鼠標(biāo)指向命令按鈕并停留時,顯示命令按鈕ToolTipText的字符串。2023/11/22(8)Enabled屬性Enabled屬性是布爾類型,用于設(shè)置命令按鈕是否可以操作,運行程序時,若命令按鈕的Enabled屬性設(shè)置為False,命令按鈕呈灰色,此時命令按鈕禁止操作。當(dāng)命令按鈕的Enabled屬性設(shè)置為True時,允許用戶操作命令按鈕。(9)Visible屬性Visible屬性是布爾類型,用于設(shè)置命令按鈕是否可見。(10)其它屬性命令按鈕也有和大小、位置有關(guān)的屬性,有Height、Left、Top和Width。不同的是,窗體的Left和Top是相對于屏幕,命令按鈕的Left和Top是相對于窗體。另外,命令按鈕能夠輸出文字,因此有與Font相關(guān)的屬性。
2023/11/22例3.2老師和學(xué)生。設(shè)計一個窗體,在窗體上添加兩個命令按鈕。運行程序時,“老師”可以操作,“學(xué)生”不能操作,單擊“老師”按鈕后“老師”不能操作,“學(xué)生”可以操作。單擊“學(xué)生”后,命令按鈕狀態(tài)恢復(fù)成原始狀態(tài)。用鼠標(biāo)指向命令按鈕并停留時,顯示提示信息。2023/11/22命令按鈕事件命令按鈕它是用戶與程序交互的最簡便的方法。命令按鈕除最常使用的Click事件。命令按鈕常用到的事件有:MouseDown事件、MouseUp事件、MouseMove
事件等。MouseDown事件2023/11/22例3.3事件順序。設(shè)計一個窗體,在窗體上添加一個命令按鈕。并編寫命令按鈕被壓下、單擊和抬起的事件過程,在事件過程中輸出命令按鈕的狀態(tài)。要求命令按鈕被壓下和正常狀態(tài)分別顯示不同圖形。2023/11/22標(biāo)簽控件標(biāo)簽控件(Label)也稱標(biāo)簽或標(biāo)簽框,是最常使用的控件之一,常用于輸出文本,顯示提示信息,用標(biāo)簽控件輸出的文本、提示信息不能編輯、修改。所以標(biāo)簽控件常用來輸出標(biāo)題、顯示處理結(jié)果或標(biāo)識那些不帶Caption屬性的控件,如下面講的TextBox控件。2023/11/22標(biāo)簽控件屬性(1)(名稱)屬性在界面設(shè)計時,用Name屬性設(shè)置標(biāo)簽控件的名稱。隨著標(biāo)簽控件的建立,系統(tǒng)賦給標(biāo)簽控件的隱含名稱為Label1、Label2等,在隱含名稱中Label永遠(yuǎn)保持不變,變化的是后邊的序號,能表示出是第幾個添加的標(biāo)簽控件。在程序中對控件的操作,都是通過名稱來識別對象。(2)Caption屬性Caption屬性是字符串類型,用于設(shè)置該標(biāo)簽控件的標(biāo)題。該屬性值就是標(biāo)簽控件要顯示的內(nèi)容,它既可以在屬性窗口中設(shè)定,也可用代碼改變控件顯示的內(nèi)容。2023/11/22(3)Alignment屬性數(shù)值型,用于設(shè)置標(biāo)題的對齊方式,可設(shè)置為0、1和2,其作用分別是:左對齊、右對齊和中間對齊。(4)AutoSize屬性AutoSize屬性是布爾類型,標(biāo)簽的大小是否隨標(biāo)題內(nèi)容的大小自動調(diào)整。當(dāng)該屬性設(shè)置為True時,標(biāo)簽的大小隨標(biāo)題內(nèi)容自動調(diào)整,使標(biāo)簽的大小正好適應(yīng)標(biāo)題,且不換行。當(dāng)該屬性設(shè)置為False時,標(biāo)簽的大小不隨標(biāo)題內(nèi)容自動調(diào)整,標(biāo)題超過標(biāo)簽尺寸的部分不能顯示。確省值為False。2023/11/22(5)BorderStyle屬性數(shù)值型,用于設(shè)置邊框的樣式,只能取0或1,其作用如下:0-標(biāo)簽無邊界線,確省值。1-標(biāo)簽有邊界線。(6)BackStyle屬性數(shù)值型,用于設(shè)置背景的樣式,只能取0或1,其作用如下:0-透明顯示,確省值。1-不透明顯示。2023/11/22文本框(TextBox)控件
文本框?qū)傩裕?)Text屬性Text屬性是字符串類型,用于設(shè)置文本框中顯示的文字。該屬性值是文本框要顯示的內(nèi)容,它既可以在屬性窗口中設(shè)定,也可用代碼改變控件顯示的內(nèi)容。(2)PasswordChar屬性PasswordChar屬性是字符串類型,用于設(shè)置文本框中顯示的字符,常用于口令輸入。
2023/11/22(3)Multiline屬性Multiline屬性是布爾類型,用于設(shè)置文本框中是否可以輸入多行文本。缺省值是False,此時文本框中只能輸入一行文本。當(dāng)設(shè)置該屬性為True時,文本框可以輸入多行文本。當(dāng)該屬性設(shè)置為False時,PasswordChar屬性才能發(fā)揮作用。(4)ScrollBars屬性ScrollBars屬性是數(shù)值型,用于設(shè)置文本框中是否有滾動條,什么樣的滾動條。可取值0、1、2、3,缺省值是0。
2023/11/22文本框事件和方法文本框支持Click和DblClick事件,常用的事件還有:(1)Change事件在文本框中輸入信息或在程序中改變Text屬性值時,都會觸發(fā)該事件。(2)LostFocus事件按下Tab鍵或用鼠標(biāo)單擊其它對象使焦點離開該文本框時,觸發(fā)該事件。(3)KeyPree事件當(dāng)文本框具有焦點時,按下任意鍵,都會觸發(fā)該事件。通??捎迷撌录z查輸入的字符。
2023/11/22TextBox控件常用的方法有:SetFocus方法,其作用是把焦點設(shè)置到指定的對象,如:Text1.SetFocus將使當(dāng)前窗體中的文本框text1能夠接收鍵盤輸入的字符。2023/11/22綜合運用
例3.6字符和ASCII例3.7相對運動一平板車,質(zhì)量M=100千克,停在水平路面上。車身的平板離地面的高度h=1.25米,一質(zhì)量m=50千克的小物塊置于車的平板上,它到車尾端的距離b=1.00米,與車板間的滑動摩擦系數(shù)u=0.20,如圖所示。今對平板車施一水平方向的恒力,使車向前行駛,結(jié)果物塊從車板上滑落。物塊剛離開車板的時刻,車向前行駛的距離S0=2.0米。求物塊落地時,落地點到車尾的水平距離S。不計路面與平板車間以及輪軸之間的摩擦,取g=9.8米/秒2。
2023/11/22認(rèn)識選擇控件和分支程序設(shè)計
例4.1設(shè)置字體。
運行程序時,先選擇字體、字形、字體顏色和效果,再單擊“確定”,程序?qū)凑者x擇設(shè)置標(biāo)題為“程序設(shè)計”的標(biāo)簽框。
2023/11/22分支程序設(shè)計
行If結(jié)構(gòu)行If結(jié)構(gòu)要求把判斷結(jié)構(gòu)寫在一行。行If結(jié)構(gòu)有如下兩種形式:單分支的行If結(jié)構(gòu),格式如下:If邏輯表達(dá)式Then語句組1雙分支的行If結(jié)構(gòu),格式如下:
If邏輯表達(dá)式Then語句組1Else語句組2
演示2023/11/22邏輯表達(dá)式語句組1語句組2邏輯表達(dá)式語句組1演示2023/11/22例4.2找最小數(shù)。設(shè)計一個窗體,在窗體上添加四個標(biāo)簽、四個文本框和兩個命令按鈕。運行程序時,先在輸入要比較的三個數(shù),再單擊“確定”,程序?qū)⒄页鋈齻€數(shù)中最小的數(shù),并把計算結(jié)果顯示在最小數(shù)文本框中。
2023/11/22塊If結(jié)構(gòu)
單分支的塊If結(jié)構(gòu),格式如下:If邏輯表達(dá)式Then
語句序列EndIf雙分支的塊IF結(jié)構(gòu),格式如下:If邏輯表達(dá)式Then
語句序列1Else
語句序列2EndIf2023/11/22多分支的塊IF結(jié)構(gòu),格式如下:If邏輯表達(dá)式1Then
語句序列1ElseIf邏輯表達(dá)式2Then
語句序列2……ElseIf邏輯表達(dá)式nThen
語句序列n[Else
語句序列n+1]EndIf2023/11/22塊If結(jié)構(gòu)的嵌套上邊介紹了塊If結(jié)構(gòu)的基本形式,在實際使用中常需要復(fù)雜的多重選擇,用一個塊If結(jié)構(gòu)是不行的,必須用嵌套的塊If結(jié)構(gòu)。所謂嵌套的塊If結(jié)構(gòu),指在一個塊If結(jié)構(gòu)中,又包含另一個塊If結(jié)構(gòu)。
2023/11/22例4.3判斷三角形。設(shè)計一個窗體,在窗體上添加五個標(biāo)簽、三個文本框和兩個命令按鈕。運行程序時,先在輸入文本框中輸入邊長,再單擊“判斷”,程序?qū)⑴袛嗍欠衲軜?gòu)成三角形及其具體的形狀:銳角,直角,鈍角,并把計算結(jié)果顯示在結(jié)論標(biāo)簽框中。
2023/11/22多分支結(jié)構(gòu)有時程序可能有多種選擇,可以使用多分支結(jié)構(gòu)。多分支結(jié)構(gòu)以多分支語句SelectCase開頭,以EndSelect結(jié)束,SelectCase語句也稱情況語句,它適用于描述較多分支。使用該結(jié)構(gòu)會使程序簡潔,多分支結(jié)構(gòu)的格式為:SelectCase測試表達(dá)式
Case表達(dá)式列表1語句序列1
Case表達(dá)式列表2語句序列2·········
Case表達(dá)式列表n
語句序列n[CaseElse
語句序列n+1]EndSelect2023/11/22例4.4成績評定。設(shè)計一個窗體,在窗體上添加兩個標(biāo)簽、兩個文本框和兩個命令按鈕。運行程序時,先在輸入文本框中輸入一個百分制的成績,再單擊“計算”,程序?qū)⒂嬎愠鼋Y(jié)論,并把結(jié)論顯示在文本框中。成績大于等于90結(jié)論為“優(yōu)秀”,成績在80到90(含80、不含90)結(jié)論為“良好”,成績在60到80(含60、不含80)結(jié)論為“及格”,60以下結(jié)論為“不及格”。若單擊“結(jié)束”按鈕,結(jié)束程序運行。
2023/11/22單選按鈕(OptionButton)控件
單選按鈕外觀是一個圓圈。運行程序時,若單擊單選按鈕,則圓圈中間會出現(xiàn)一個黑色的圓點,表示該項被選擇。一組單選按鈕只能有一個被選擇。
2023/11/22單選按鈕的屬性(1)Value屬性Value屬性標(biāo)志單選按鈕是否被選擇,若單選按鈕被選擇,則它的Value屬性值為True,未被選擇其值為False(缺省值)。(2)Caption屬性單選按鈕的標(biāo)題,是字符串類型。(3)名稱和其他屬性
2023/11/22單選按鈕的事件單選按鈕控件支持Click事件。運行程序時單擊單選按鈕,便觸發(fā)Click事件,若存在該按鈕的事件過程,將執(zhí)行此事件過程。通常不編寫這樣的事件過程。
2023/11/22復(fù)選按鈕(CheckBox)控件
復(fù)選按鈕也稱檢查框,該控件可用來提供多選擇,用戶可以從中選擇一個或多個,還可以一個也不選擇。復(fù)選按鈕外觀是一個小方框,若單擊某一個復(fù)選按鈕,則在小方框中間將出現(xiàn)“√”符號標(biāo)記,表示該項被選擇。若再次單擊被選擇的復(fù)選按鈕,則取消對該復(fù)選按鈕的選擇。2023/11/22復(fù)選按鈕的屬性(1)Value屬性復(fù)選按鈕Value屬性是數(shù)值型,其值為0表示未被選擇,其值為1表示被選擇,其值為2表示禁止用戶選擇,此時復(fù)選按鈕為灰色,0是缺省值。(2)Caption屬性復(fù)選按鈕的標(biāo)題,是字符串類型。(3)名稱和其他屬性
2023/11/22框架(Frame)控件
框架控件主要用于創(chuàng)建多個單選按鈕或復(fù)選按鈕組。在操作一個框架內(nèi)的單選按鈕時,不會影響該框架外的單選按鈕。框架是一個控件的容器,當(dāng)框架設(shè)置為不能操作或不可見時,框架中的控件也變得不能操作或不可見。
2023/11/22框架控件的屬性(1)Caption屬性框架控件的標(biāo)題,是字符串類型。(2)名稱和其他屬性
2023/11/22框架控件的事件框架控件支持Click事件,通常不編寫這樣的事件過程。在界面設(shè)計時,要先建立框架,然后在框架內(nèi)畫上其他控件。不要把框架外的控件拖動到框架內(nèi),這樣的控件不屬于該框架的。
2023/11/22列表框和組合框
例4.5旅游信息查詢。設(shè)計一個窗體,在窗體上添加一個組合框、一個列表框、兩個標(biāo)簽和一個命令按鈕。運行程序時,用戶可從請選擇目的地中選擇地名,在旅游信息列表中將出現(xiàn)旅游景區(qū)。
2023/11/22列表框?qū)傩裕?)Text屬性返回列表框被選擇的列表項目,是字符串類型。在列表框中該屬性為只讀屬性,界面設(shè)計階段不能修改。(2)ListIndex屬性設(shè)置或返回列表框被選擇的列表項的序號,是整型。在列表框中第一個列表項序號為0,第二個列表項序號為1,…,最后一個列表項目序號為Listcount-1。(3)Listcount屬性返回列表框列表項的個數(shù),是整型。
2023/11/22(4)List屬性字符串?dāng)?shù)組,每個元素都是列表框的一個列表項內(nèi)容。在界面設(shè)計時,利用List屬性可以輸入列表項目,在代碼中可以引用該數(shù)組。(5)Sorted屬性確定列表項是否按升序排列,是邏輯型,通過屬性窗口設(shè)置。設(shè)置為True表示按升序排列列表項目,否則按增加先后次序排列。(6)Sorted屬性確定列表項是否按升序排列,是邏輯型,通過屬性窗口設(shè)置。設(shè)置為True表示按升序排列列表項目,否則按增加先后次序排列。
2023/11/22(7)MultiSelect屬性確定是否一次可選擇多個列表項,是整型,通過屬性窗口設(shè)置??扇≈?、1和2,0表示每次只能選擇一項;1表示簡單多項選擇,一次可以選擇多項;2表示擴展多項選擇,按下Ctrl
或Shift鍵+鼠標(biāo)單擊,一次可以選擇多項。(8)Selected屬性在支持多項選擇中,判斷被選擇的列表項。是邏輯型數(shù)組,在設(shè)計階段不可用,當(dāng)數(shù)組元素為True時,表示該項被選擇,為False時,表示該項未被選擇。(9)名稱和其他屬性2023/11/22列表框的事件和方法1.列表框的事件列表框控接收Click事件、DblClick事件和LostFocus等事件,但大多數(shù)程序編寫DblClick事件過程。2.列表框的方法列表框可以使用的方法有AddItem、RemoveItem和Clear。利用它們可以在程序運行期間修改列表框的內(nèi)容。
2023/11/22組合框是具有文本框控件與列表框控件特性的控件。組合框系統(tǒng)的隱含名稱為Combo1、Combo2等。
2023/11/22組合框?qū)傩裕?)Style屬性當(dāng)Style設(shè)置為0時(默認(rèn)樣式),是下拉式組合框。單擊右側(cè)的箭頭時打開選項列表,可從打開的列表中選擇列表項目,選擇的列表項目將顯示在文本框中。也可直接在文本框中輸入文本,在DropDown等事件過程中把文本框內(nèi)容增加到組合框中。當(dāng)Style設(shè)置為1時,是簡單組合框。這時文本框右側(cè)無箭頭按鈕,它看起來象一個文本框和一個標(biāo)準(zhǔn)列表框的結(jié)合,列表項始終顯示在列表框中??梢詮牧斜碇羞x擇項,也可以直接在文本框中輸入文本。當(dāng)Style設(shè)置為2時,是下拉式列表框,它與下拉式組合框相似。單擊右側(cè)的箭頭時打開選項列表,可從打開的列表中選擇列表項目,選擇的列表項目將顯示在文本框中;通過輸入可以快速選擇文本。與下拉式組合框不同的是:它不能在文本框中輸入新的內(nèi)容。
2023/11/22(2)Text屬性返回列表框被選擇的列表項目,是字符串類型。在Style為0或1時可以鍵入文本。組合框的(名稱)屬性系統(tǒng)隱含為Combo1,Combo2等。在列表框中的屬性同樣適于組合框。
2023/11/22組合的事件和方法組合框的Style取值不同,能響應(yīng)的事件也有差異,只有簡單組合框能響應(yīng)DblClick事件,下拉式組合框和下拉式列表框能響應(yīng)DropDown,所有組合框都能響應(yīng)Click事件。在列表框中可以使用的方法同樣適于組合框。
2023/11/22MsgBox函數(shù)和MsgBox語句
MsgBox函數(shù)的一般格式如下:
MsgBox(內(nèi)容[,類型][,標(biāo)題][,幫助文件,主題編號])
例4.6
確認(rèn)刪除列表項。設(shè)計一個窗體,在窗體上添加一個列表框和兩個命令按鈕。運行程序時,先選擇要刪除的列表項,單擊“刪除”按鈕,彈出含有詢問對話框,根據(jù)用戶的不同選擇進行不同處理。
2023/11/22MsgBox語句MsgBox的語句格式如下。
MsgBox內(nèi)容[,類型][,標(biāo)題][,幫助文件,主題編號]
在程序中MsgBox語句不能提供返回值,一般只用來嶄停一下程序。
2023/11/22綜合運用
例4.7選課。設(shè)計一個窗體,在窗體上添加五個標(biāo)簽框、四個組合框、一個文本框和兩個命令按鈕。運行程序時,先選擇課程、教師和學(xué)分并輸入姓名,單擊“登記”按鈕,彈出對話框,根據(jù)用戶的不同選擇進行登記或放棄登記。
例4.8歌詠比賽。設(shè)計一個窗體,在窗體上添加在窗體上添加一個標(biāo)簽、兩個文本框、三個命令按鈕和兩個框架。兩個框架內(nèi)分別畫上單選按鈕和復(fù)選按鈕。運行程序時,輸入歌手姓名、選擇性別和參賽項目后,單擊“登記”將在文本框登記一行,單擊“下一個”清除輸入的姓名和選擇,為輸入下一個準(zhǔn)備,每次登記信息占一行,單擊“退出”按鈕,結(jié)束程序運行。
2023/11/22認(rèn)識圖片框和循環(huán)程序設(shè)計
“例5.1正弦曲線。設(shè)計一個窗體,在窗體上添加一個圖片框和四個命令按鈕。運行程序時,單擊繪制曲線、繪制坐標(biāo)、輸出標(biāo)記,可分別在圖片框中繪制正弦曲線、坐標(biāo)系和標(biāo)記。2023/11/22繪圖方法
坐標(biāo)系在VB中,窗體和圖片框都有確省的坐標(biāo)系。確省的坐標(biāo)系規(guī)定坐標(biāo)的原點在窗體和圖片框可用空間的左上角,向下為Y方向,向右為X方向,單位是Twip。1440個Twip為1英寸。使用這樣的坐標(biāo)系繪圖非常困難,用戶可用Scale方法設(shè)置自己的坐標(biāo)系。Scale方法的一般格式:[對象名.]Scale(x1,y1)-(x2,y2)
2023/11/22PSet方法畫點用PSet方法可以在窗體或圖片框上繪制一個點。PSet方法的一般格式:
[對象名.]PSet(x,y)[,顏色]
2023/11/22Line方法用Line方法可以在窗體或圖片框上繪制一條直線或繪制一個矩形。Line方法的一般格式:[對象名.]Line[(x1,y1)]-(x2,y2)[,顏色][,B[F]]其中,(x1,y1)為始點坐標(biāo);(x2,y2)為終點坐標(biāo);顏色可以使用RGB函數(shù),規(guī)定畫線或畫矩形的顏色。關(guān)鍵字B表示畫矩形或填充矩形。當(dāng)FillStyle屬性為1時,表示畫空心矩形。FillStyle屬性可取值0到7,除FillStyle屬性為1外,都為畫填充矩形,此時由FillStyle屬性決定填充圖案,由FillColor屬性決定填充顏色。
2023/11/22
Circle方法用Line方法可以在窗體或圖片框上繪制一條直線或繪制一個矩形。用Circle方法可以在窗體或圖片框上繪制圓、圓弧、扇形或橢圓。Circle方法的一般格式是:[對象名.]Circle(x,y),半徑[,顏色][,起始角][,終止角][,長短軸比率]其中,(x,y)為圓心坐標(biāo);顏色可以使用RGB函數(shù);起始角和終止角應(yīng)使用弧度,值在0~2π時繪制圓弧,取負(fù)值時繪制扇形;使用長短軸比率可用繪制橢圓。
2023/11/22循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)用來描述有規(guī)律地重復(fù)執(zhí)行某一程序段。VB6.0支持循環(huán)結(jié)構(gòu)的語句有for、和do等語句,使用循環(huán)控制結(jié)構(gòu)編程可以簡化程序,提高效率。
For…Next結(jié)構(gòu)For…Next結(jié)構(gòu)在程序中可以實現(xiàn)固定次數(shù)的循環(huán)。For…Next結(jié)構(gòu)的格式如下:For循環(huán)變量=初值To終值[Step步長]循環(huán)體[ExitFor]Next循環(huán)變量
2023/11/22例5.2連乘之積。設(shè)計一個窗體,在窗體上添加兩個命令按鈕。運行程序時,單擊“計算”,程序?qū)棾鲚斎雽υ捒?,要求輸入?shù)據(jù),輸入5個數(shù)之后,將在窗體輸出5個數(shù)之積。
2023/11/22
Do…Loop結(jié)構(gòu)
DoWhile…Loop形式
DoWhile邏輯表達(dá)式循環(huán)體[ExitDo]Loop
DoUntil…Loop形式
DoUntil邏輯表達(dá)式循環(huán)體[ExitDo]Loop2023/11/22Do…LoopWhile形式
Do
循環(huán)體[ExitDo]LoopWhile邏輯表達(dá)式
Do…LoopUntil形式
Do
循環(huán)體[ExitDo]LoopUntil邏輯表達(dá)式
2023/11/22循環(huán)的嵌套在一個循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)含有另一個循環(huán)結(jié)構(gòu),這就形成了嵌套循環(huán),又叫做多重循環(huán)。判斷正誤DoWhileb1Forj=k1Tok2……LoopNextjDoForj=k1Tok2……NextjLoopWhileb1DoForj=k1Tok2……NextjLoopWhileb12023/11/22圖片框和圖像框
圖片框和圖像框都能加載圖像文件。圖片框功能更強,它不僅可以顯示圖像,還可以用繪圖方法繪制圖形、用Print方法顯示文本,圖片框也能作為其他控件的容器。可加載到這兩個控件上的圖像文件擴展名是:.Bmp、.Dib、Ico、.Cur、.Emf、.Wmf或.Gif。2023/11/22圖片框和圖像框的屬性(1)Picture屬性設(shè)置圖片框和圖像框要顯示的圖形??稍谠O(shè)計階段加載圖像文件,也可以在程序運行時加載圖像文件。(2)AutoSize屬性設(shè)置圖片框是否能自動改變大小以適應(yīng)圖形,該屬性是邏輯型。當(dāng)取值True時,圖片框隨著圖形實際大小自動調(diào)整尺寸以適應(yīng)圖形的尺寸;若取值False時,圖片框不能改變大小,此時若圖片框小于圖形尺寸,圖形被裁剪。圖片框的AutoSize屬性缺省為False。
2023/11/22(3)Stretch屬性設(shè)置能否自動改變圖形的大小以適應(yīng)圖像框,該屬性是邏輯型。若取值True時,圖像框不能改變大小,此時圖形被壓縮或拉伸以適應(yīng)圖像框;當(dāng)取值False時,圖像框隨著圖形實際大小自動調(diào)整尺寸以適應(yīng)圖形的尺寸。圖像框的Stretch屬性缺省為False。(4)名稱和其他屬性2023/11/22在代碼中加載圖形要使用LoadPicture函數(shù)。把LoadPicture函數(shù)值賦給圖片框或圖像框的Picture屬性,便可實現(xiàn)在圖片框或圖像框中顯示圖形。一般使用的格式為:[對象名.]Picture=LoadPicture("圖形文件名")2023/11/22例隨手畫。'本程序演示MouseMove事件過程的用法,在Picture1中隨手畫'在Picture1中壓下鼠標(biāo)左鍵并拖動鼠標(biāo)可繪制圖形2023/11/22圖片框和圖像框事件和方法圖片框和圖像框都支持Click和DblClick事件,但很少對它們編程。另外圖片框和窗體一樣支持MouseMove、MouseDown、MouseUp等事件。圖片框常用方法在本章第2節(jié)介紹了PSet方法、Line方法、Circle方法。這里主要介紹Cls方法和Print方法Cls方法用于清除圖片框中顯示的文字信息或用繪圖方法繪制的圖形。Print方法用于在圖片框中顯示的文字信息。和在窗體使用這兩個方法完全相同。Cls方法的一般格式是:[對象名.]Cls2023/11/22其他圖形控件在VB除圖像框和圖片框控件是專門處理圖形的控件外,還有畫線控件和形狀控件,使用這兩個控件可以非常方便地構(gòu)造幾何圖形,一般不需要編程。1、
Line畫線控件Line控件可以用來畫線。畫線操作的步驟如下:2、
Shape形狀控件Shape控件可以用來畫矩形、正方形、橢圓、圓、圓角矩形和圓角正方形。通過Shape屬性可確定所需要的幾何形狀。Shape控件的Shape屬性取值0到5,其形狀分別對應(yīng)矩形、正方形、橢圓、圓、圓角矩形和圓角正方形。2023/11/22綜合運用
例5.5繪制方程線。設(shè)計一個窗體,在窗體上添加一個圖片框、兩個框架、五個標(biāo)簽框、五個文本框和四個按鈕。運行程序時,單擊“繪制曲線”和“繪制直線”根據(jù)函數(shù)中給定的數(shù)值在圖片框內(nèi)繪制函數(shù)的圖形。單擊“輸出坐標(biāo)”和“結(jié)束程序”也能完成相應(yīng)的功能。
例5.6水仙花數(shù)。尋找[100,999]之間的所有水仙花數(shù),所謂水仙花數(shù)指一個三位數(shù),其中各位數(shù)字的立方和等于該數(shù)本身。在窗體上添加一個標(biāo)簽框、一個列表框和兩個命令按鈕。用戶界面請參見圖5.21。
2023/11/22例5.7整錢化成毛票。把一圓以上的鈔票換成一角,兩角,五角的毛票(每種至少一張),求每種換法各種毛票的張數(shù)。在窗體上添加一個列表框和兩個命令按鈕。
例5.8最大公約數(shù)和最小公倍數(shù)。設(shè)計一個窗體,在窗體上添加一個圖片框和兩個命令按鈕。運行程序時,單擊“開始”按鈕,彈出輸入對話框,要求輸入兩個數(shù),程序?qū)⒂嬎銉蓚€自然數(shù)M和N的最大公約數(shù)和最小公倍數(shù)。
2023/11/22認(rèn)識計時器和數(shù)組
例6.1輸入日期計算天數(shù)。設(shè)計一個窗體,在窗體上添加一個標(biāo)簽框、一個計時器和兩個命令按鈕。運行程序并單擊“開始”,彈出輸入對話框,要求按照固定格式輸入日期,程序計算輸入日期是該年中的第幾天。
2023/11/22
控件屬性數(shù)組
例6.2列表項操作。設(shè)計一個窗體,在窗體上添加一個列表框、一個框架、一個文本框、一個復(fù)選按鈕和五個命令按鈕。運行程序并單擊“增加元素”,給列表框增加10個列表項。單擊“交換元素”,交換相鄰的兩個列表項。在查找中輸入要查找的文本,單擊“開始”,將找到所有含該文本的列表項并使之處于選擇狀態(tài),選擇嚴(yán)格查找,只有列表項的內(nèi)容和要查找的文本完全一致時,才算找到。單擊“反向選擇”,使選擇的列表項變成未被選擇的列表項,而未被選擇的列表項變成選擇的列表項。單擊“刪除元素”,將刪除所有選擇的列表項。2023/11/22控件數(shù)組
控件數(shù)組由一組相同類型的控件組成。這些控件具有相同的名稱,具有很多相同的屬性。數(shù)組中的每個控件都有唯一的索引號,即下標(biāo),下標(biāo)值由Index屬性指定,第1個控件數(shù)組元素的下標(biāo)為0,第2個控件數(shù)組元素的下標(biāo)為1等等。它是創(chuàng)建控件數(shù)組時系統(tǒng)自動按順序賦給每個控件數(shù)組元素的,程序通過索引值來區(qū)別控件數(shù)組中的元素。由于控件數(shù)組是由一組相同類型的控件組成,這些控件共用一個相同的名字。數(shù)組中的每個控件都有唯一的索引號(下標(biāo)),所以它們非常方便的共享同一事件過程。在若干控件執(zhí)行的操作相似的場合最適于使用控件數(shù)組。
2023/11/22例6.3計算器。設(shè)計一個窗體,在窗體上設(shè)計由十個數(shù)字按鈕、四個運算符、四個函數(shù)按鈕、一個“C”按鈕、一個“=”按鈕和一個標(biāo)簽,模擬計算器能完成一步整數(shù)計算功能。
2023/11/22自定義數(shù)組
在本章介紹列表框的List和Selected屬性時,談到這樣的屬性是數(shù)組。它們分別存放列表框中所有列表項的內(nèi)容和每個列表項是否被選擇的狀態(tài)。在實際應(yīng)用中,也經(jīng)常需要處理成批數(shù)據(jù),為此高級語言都提供了數(shù)組。它是一種非常有用的數(shù)據(jù)結(jié)構(gòu)。一般來講,數(shù)組是由一系列元素構(gòu)成,每個元素的類型相同。
2023/11/22在計算機中數(shù)組占據(jù)一塊內(nèi)存區(qū)域,數(shù)組名是這個區(qū)域的名稱,下標(biāo)可標(biāo)識數(shù)組元素在該區(qū)域的位置。數(shù)組應(yīng)遵循先定義后使用的原則。定義數(shù)組的目的是為其留出所需空間。這一點和控件屬性中使用到的數(shù)組不同,控件屬性中用到的數(shù)組是系統(tǒng)定義的。定義數(shù)組的一般格式:Dim數(shù)組名(第一維說明[,第二維說明]…..)[As類型]2023/11/22除使用Dim語句指定下界,還可以使用OptionBase語句指定下界。OptionBase語句格式為:OptionBase下界值
2023/11/22例6.4試驗數(shù)據(jù)。設(shè)計一個窗體,在窗體上添加一個文本框、一個圖片框、一個列表框和三個命令按鈕。運行程序時,單擊“模擬數(shù)據(jù)”按鈕,用隨機函數(shù)產(chǎn)生30個兩位模擬試驗隨機整數(shù),并且顯示在文本框中。單擊“數(shù)據(jù)分布”按鈕,統(tǒng)計試驗數(shù)據(jù)的分布,按10到19、20到29……90到99分段,統(tǒng)計每段模擬試驗數(shù)據(jù)的個數(shù),并在圖片框中顯示。單擊“計算平均”按鈕,計算模擬試驗數(shù)據(jù)的平均值和低于平均值數(shù)據(jù)的個數(shù),并且顯示在列表框中。
2023/11/22例6.5楊輝三角形。設(shè)計一個窗體,在窗體上添加一個文本框和三個命令按鈕。運行程序時,單擊“輸出”,彈出輸入對話框,用于輸入要輸出楊輝三角形的行數(shù),假定要輸入的數(shù)小于11,程序?qū)⒂嬎悴⒃谖谋究蛑休敵鰲钶x三角形。
2023/11/22可調(diào)數(shù)組
定義數(shù)組的目的是為了預(yù)留連續(xù)的存儲空間,但有時數(shù)組的大小只有運行程序時才能確定,定義“足夠大”的數(shù)組雖然可以解決這個問題,但浪費了很多存儲空間。在例8.5中處理gz數(shù)組VB的編譯程序?qū)㈩A(yù)留了100個存儲空間,但實際可能只使用其中一部分。為此,VB6.0提供了可調(diào)數(shù)組用來解決這個問題,可調(diào)數(shù)組也稱動態(tài)數(shù)組??烧{(diào)數(shù)組的長度可以在運行程序時改變。定義可調(diào)數(shù)組的方法是(1)用Dim語句(或Private和Public),但不要指定維數(shù)。(2)再用ReDim語句指定數(shù)組的準(zhǔn)確尺寸。
2023/11/22例6.6計算前三名學(xué)生成績。設(shè)計一個窗體,在窗體上添加兩個命令按鈕。運行程序時,單擊【計算】,彈出輸入對話框,要求輸入學(xué)生人數(shù)。以后要求輸入每個學(xué)生的成績,輸入結(jié)束后計算并輸出學(xué)生人數(shù)和平均成績,然后再輸出成績最高的前三名學(xué)生的成績。
2023/11/22可變類型數(shù)組當(dāng)一個數(shù)組被說明成變體類型的數(shù)組,它的每個元素也是變體類型的,因此,可以存放各種類型的數(shù)據(jù)。OptionBase1PrivateSubForm_Click()Diman(6)Fori=1To3an(i)="Name"+Str(i)NextiFori=4To6an(i)=Int(Rnd*10000)/100NextiFori=1To3Printan(i),an(i+3)NextiEndSub2023/11/22變體變量可以擴充為數(shù)組,用Array函數(shù)可以給變體變量賦一組數(shù),這組數(shù)的數(shù)據(jù)類型可以不同,賦值以后變體變量擴充為數(shù)組,要訪問其中的元素。例如:OptionBase1PrivateSubForm_Click()Dimanan=Array("Name1","Name2","Name3",Int(Rnd*10000)/100,Int(Rnd*10000)/100,Int(Rnd*10000)/100)Fori=1To3Printan(i),an(i+3)NextiEndSub2023/11/22計時器控件(Timer)
計時器控件也稱定時器或時鐘,他是按一定時間間隔自動觸發(fā)事件的控件,使用計時器可定時重復(fù)執(zhí)行時鐘中斷過程。在程序運行時,計時器是不可見的。
2023/11/22計時器的屬性(1)Interval屬性設(shè)定計時器觸發(fā)Timer事件的時間間隔,即兩個計時器事件之間的時間間隔,其值以毫秒(0.001秒)為單位,允許范圍是0到65,535。該控件會自動檢查系統(tǒng)時間是否又到Interval屬性值,到了便產(chǎn)生Timer事件,執(zhí)行時鐘中斷過程。當(dāng)Interval屬性值為0時屏蔽計時器,使計時器不再產(chǎn)生Timer事件。(2)名稱和其他屬性
2023/11/22計時器的事件計時器控件的常用事件是Timer事件,是計時器在間隔了一個Interval時間后所觸發(fā)的事件。例6.7倒計數(shù)。設(shè)計一個窗體,在窗體上添加兩個標(biāo)簽和一個計時器。運行程序時,自動開始倒計數(shù),從10到0每隔一秒倒計數(shù)一次,計數(shù)時在兩個標(biāo)簽中分別顯示系統(tǒng)當(dāng)前時間和倒計數(shù)的值。
2023/11/22滾動條控件
滾動條控件用于輸入數(shù)據(jù),也用于與那些不支持滾動的控件配合使用,給它們提供滾動觀察的功能。
2023/11/22滾動條的屬性(1)Value屬性Value屬性標(biāo)志滾動條的當(dāng)前值(滾動滑塊的位置),當(dāng)滾動滑塊的位置移動時,Value屬性值也隨之改變。在程序中也可以用代碼設(shè)置,設(shè)置時滾動滑塊的位置隨之移動。其值為整型,范圍應(yīng)在Min和Max之間。(2)Min屬性滾動滑塊在最小位置的值,其值為整型,范圍應(yīng)在-32768和32767之間。水平滾動條滾動滑塊在最左邊,垂直滾動條滾動滑塊在最上邊,是滾動滑塊在最小位置的值。(3)Max屬性滾動滑塊在最大位置的值,其值為整型,范圍應(yīng)在-32768和32767之間。水平滾動條滾動滑塊在最右邊,垂直滾動條滾動滑塊在最下邊,是滾動滑塊在最大位置的值。
2023/11/22(4)SmallChange屬性當(dāng)單擊滾動條兩端箭頭時,Value的改變量,其值為整型。(5)LargeChange屬性當(dāng)單擊滾動條的空白位置時,Value的改變量,其值為整型。(6)名稱和其他屬性
2023/11/22滾動條的事件滾動條控件常用的事件有Scroll和Change。當(dāng)拖動滾動條滑塊時觸發(fā)Scroll事件,當(dāng)單擊滾動條兩端箭頭時或單擊滾動條的空白位置時,觸發(fā)Change事件。拖動滾動條滑塊結(jié)束時,也觸發(fā)Change事件。
例6.8比較Scroll和Change事件。設(shè)計一個窗體,在窗體上添加兩個文本框和兩個水平滾動條。運行程序時,單擊左邊滾動條兩端箭頭時或單擊滾動條的空白位置時,改變文本框1的寬度和文本框1中字的大小,拖動右邊滾動條滑塊時,改變文本框2的寬度和文本框2中字的大小。
2023/11/22綜合運用
例6.9入網(wǎng)登記。設(shè)計一個窗體,在窗體上添加三個標(biāo)簽、一個文本框、一個列表框和兩個命令按鈕。運行程序時,輸入入網(wǎng)人員姓名,單擊【入網(wǎng)登記】按鈕,在列表框中增加一位網(wǎng)民,若在列表框中單擊網(wǎng)民的姓名,將顯示該網(wǎng)民入網(wǎng)時間,單擊【退出】命令按鈕,結(jié)束程序運行。
例6.10慶祝中國載人航天的成功。設(shè)計一個窗體,在窗體上添加兩個標(biāo)簽、一個文本框和一個水平滾動條。運行程序時,文本框中的漢字隨時間而改變顏色,改變水平滾動條滑塊位置會改變顏色變化的頻率,顏色取紅、綠和藍(lán)三色。
2023/11/22例6.11奔跑的馬。設(shè)計一個窗體,在窗體上添加一個圖像框。運行程序后,在窗體上顯示馬奔跑的動畫。
例6.12運行中的載人飛船。設(shè)計一個窗體,在窗體上添加一個圖片框和一個形狀控件。運行程序后,模擬飛船繞地球運動。
2023/11/22多文檔界面(MDI)應(yīng)用程序
多文檔界面(MDI)允許創(chuàng)建在單個容器窗體中包含多個窗體的應(yīng)用程序。像MicrosoftExcel與MicrosoftWordforWindows這樣的應(yīng)用程序就具有多文檔界面。2023/11/22多文檔界面(MDI)應(yīng)用程序MDI窗體與具有一個限制條件的普通窗體相似。除非控件具有Align屬性(如PictureBox控件)或者具有不可見界面(如Timer控件),否則不能將控件直接放置在MDI窗體上。
2023/11/22多文檔界面(MDI)應(yīng)用程序創(chuàng)建MDI應(yīng)用程序時使用下列步驟來創(chuàng)建MDI窗體及其子窗體。
創(chuàng)建MDI窗體。從“工程”菜單中選取“添加MDI窗體”。創(chuàng)建應(yīng)用程序的子窗體。要創(chuàng)建一個MDI子窗體,先創(chuàng)建一個新窗體(或者打開一個存在的窗體),然后把它的MDIChild屬性設(shè)為True2023/11/222023/11/22MDINotePad示例
應(yīng)用程序是一個簡單的文本編輯器
1.指定活動子窗體或控件2.加載MDI窗體及其子窗體3.設(shè)置子窗體的大小和位置4.維護子窗體的狀態(tài)信息5.用QueryUnload卸載MDI窗體2023/11/22多個窗體
1.Load語句Load語句把一個窗體裝入內(nèi)存。2.Unload語句它清除內(nèi)存中指定的窗體。3.Show方法Show方法用來顯示一個窗體。4.Hide方法Hide方法是隱藏窗體,即不在屏幕上顯示,但在內(nèi)存中。2023/11/22多個窗體設(shè)置啟動窗體
(1)在“工程”菜單中,選取“工程屬性”。(2)選取“一般”。(3)在“啟動對象”列表框中,選取要作為新啟動窗體的窗體。(4)選取“確定”。2023/11/22在VisualBasic中有3種過程:Sub過程、Function(函數(shù))過程和Property(屬性)過程。屬性過程用來返回和設(shè)置屬性的值,也可以設(shè)置對象的引用,本章不再介紹。下面主要介紹Sub過程、Function過程。
2023/11/221.Sub過程子過程是在響應(yīng)事件時執(zhí)行的代碼塊。將模塊中的代碼分成子過程后,在應(yīng)用程序中查找和修改代碼變得更容易了。子過程的語法是:[Private|Public][Static]Subprocedurename(arguments)statementsEndSub2023/11/22
子過程以Sub開頭,以EndSub結(jié)束。
過程名的命名規(guī)則與變量名相同。
Sub與EndSub之間的語句稱為過程體。
形式參數(shù)表的形式參數(shù)只在本過程內(nèi)有意義。2023/11/22例7.1調(diào)用窗體的公用過程。設(shè)計一個窗體,窗體的標(biāo)題為“調(diào)用窗體的公用過程”,運行程序時,單擊“改變文本框內(nèi)容”,改變窗體中文本框的內(nèi)容,要求用過程實現(xiàn)。
2023/11/221.關(guān)鍵字Function代替了關(guān)鍵字Sub。2.函數(shù)過程有返回值。3.在函數(shù)過程體中至少應(yīng)該有一個給函數(shù)過程名賦值的語句。如果不給函數(shù)名賦值,則該函數(shù)會返回一個缺省值。2023/11/222.函數(shù)過程(Function)VisualBasic包含內(nèi)置的或內(nèi)部的函數(shù),如Sqr、Cos或Chr。此外,還可用Function語句編寫自己的Function過程。函數(shù)過程的語法[Private|Public][Static]Functionprocedurename(arguments)[Astype]StatementsEndFunction2023/11/22例7.2調(diào)用窗體的公用函數(shù)。設(shè)計一個窗體,窗體的標(biāo)題為“公用函數(shù)”,在窗體的文本框中輸入一個整數(shù),單擊“計算階乘”按鈕,在窗體中打印出階乘的計算結(jié)果。要求用函數(shù)實現(xiàn)階乘計算。
2023/11/22調(diào)用Sub過程
調(diào)用Sub過程有兩種方法:'以下兩個語句都調(diào)用了名為MyProc的Sub過程CallMyProc(FirstArgument,SecondArgument)MyProcFirstArgument,SecondArgument注意,當(dāng)使用Call語法時,參數(shù)必須在括號內(nèi)。若省略Call關(guān)鍵字,也必須省略參數(shù)兩邊的括號。2023/11/22調(diào)用函數(shù)
調(diào)用自行編寫的函數(shù)過程的方法和調(diào)用VisualBasic內(nèi)部函數(shù)過程的方法一樣,即在表達(dá)式中寫上它的名字。下面的語句都調(diào)用函數(shù)ToDec。Print10*ToDecX=ToDecIfToDec=10ThenDebug.Print"OutofRange"X=AnotherFunction(10*ToDec)2023/11/22按值傳遞參數(shù)。按值傳遞參數(shù)時,傳遞的只是變量的副本。如果過程改變了這個值,所作的變動只影響副本而不會影響變量本身。用ByVal關(guān)鍵字指出參數(shù)是按值來傳遞的。例SubPostAccounts(ByValintAcctNumasInteger)..'這里放語句。.EndSub2023/11/22按地址傳遞參數(shù)。按地址傳遞參數(shù)使過程用變量的內(nèi)存地址去訪問實際變量的內(nèi)容。結(jié)果,將變量傳遞給過程時,通過過程可永遠(yuǎn)改變變量值。按地址傳遞參數(shù)在VisualBasic中是缺省的。
2023/11/22例7.3多窗體與公共過程、標(biāo)準(zhǔn)模塊。設(shè)計一個多窗體程序,在兩個窗體中分別輸入圓的半徑,然后計算圓的面積和周長。要求周長的計算調(diào)用標(biāo)準(zhǔn)模塊中的函數(shù)過程,而面積的計算調(diào)用窗體的函數(shù)過程。
2023/11/22例7.4過程級變量示例。設(shè)計一個程序演示過程級變量的使用
2023/11/22例7.5私有模塊級變量。設(shè)計一個程序演示私有模塊級變量的用法
2023/11/22例7.6變量的作用域示例。設(shè)計一個窗體,在窗體中打印同名變量在全局和局部范圍中的不同值。
2023/11/22綜合舉例
例7.7驗證哥德巴赫猜想。設(shè)計一個窗體,在其中輸入一個不小于6的偶數(shù),將其表示為兩個素數(shù)之和。
2023/11/22通用對話框
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工傷人員傷殘評定及賠償協(xié)議
- 2025年度集體合同協(xié)商中的勞動爭議處理
- 2025年度幼兒園保安聘用合同標(biāo)準(zhǔn)范本
- 二零二五年度專業(yè)護工針對心血管疾病病人護理合同
- 2025年度中小企業(yè)發(fā)展基金借款連帶擔(dān)保人合同
- 2025年度單位食堂承包及員工滿意度提升協(xié)議
- 2025年度知識產(chǎn)權(quán)股份代持許可使用協(xié)議
- 2025年度國際文化交流項目合作誠意金協(xié)議
- 2025年度工程監(jiān)理個人勞動合同(工程質(zhì)量安全管理)
- 2025年度航空航天器復(fù)合材料維修合同
- 簡單的路線圖(說課稿)2024-2025學(xué)年三年級上冊數(shù)學(xué)西師大版
- 成都市2024-2025學(xué)年度上期期末高一期末語文試卷(含答案)
- 2025年教育局財務(wù)工作計劃
- Unit 5 Now and Then-Lesson 3 First-Time Experiences 說課稿 2024-2025學(xué)年北師大版(2024)七年級英語下冊
- 《中國心力衰竭診斷和治療指南2024》解讀
- 中小學(xué)智慧校園建設(shè)方案
- 中國食物成分表2020年權(quán)威完整改進版
- 【MOOC】影視鑒賞-揚州大學(xué) 中國大學(xué)慕課MOOC答案
- 危險性較大的分部分項工程清單安全管理措施
- 高壓輸電線路質(zhì)量、檢查、驗收培訓(xùn)課件
- 混合型頸椎病課件
評論
0/150
提交評論