版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
vb全冊(cè)配套完整課件32024/9/8第二章對(duì)象及其操作2.1對(duì)象2.2窗體2.3控件20142024/9/822.1對(duì)象與類(lèi)對(duì)象和類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming)的重要概念。對(duì)象現(xiàn)實(shí)生活中的“對(duì)象”是客觀(guān)存在的個(gè)體,隨處可見(jiàn)的人、電腦,都是對(duì)象。面向?qū)ο蟮某绦蛟O(shè)計(jì)中,“對(duì)象”是系統(tǒng)中的基本運(yùn)行實(shí)體,是具有某些特性的具體事物的抽象。在VB中,應(yīng)用程序中的各個(gè)窗體和窗體上的各種控件都是VB的對(duì)象。1.對(duì)象與類(lèi)2024/9/832.1對(duì)象與類(lèi)對(duì)象和類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming)的重要概念。1、對(duì)象與類(lèi)類(lèi)類(lèi)是創(chuàng)建對(duì)象的模板,是相同類(lèi)型的對(duì)象的集合與抽象。汽車(chē)是類(lèi)的概念,一輛具體的汽車(chē)則是汽車(chē)類(lèi)“實(shí)例化”后的對(duì)象。2024/9/842.1對(duì)象與類(lèi)2、對(duì)象的屬性屬性是用來(lái)描述和反映對(duì)象特征的參數(shù),不同的對(duì)象都具有各自的屬性。VB為每一類(lèi)對(duì)象都規(guī)定了若干屬性。設(shè)置對(duì)象屬性的方法有兩種:(1)在設(shè)計(jì)階段,從屬性窗口設(shè)置;(2)在運(yùn)行階段,由程序語(yǔ)句設(shè)置或改變屬性的值。2024/9/852.1對(duì)象與類(lèi)3、對(duì)象的方法“方法”指的是對(duì)象可以進(jìn)行的動(dòng)作或行為。
VB中每個(gè)窗體或控件對(duì)象都具有若干方法。方法使用的基本格式是:
[對(duì)象名.]方法名[參數(shù)1],[參數(shù)2],…2024/9/862.1對(duì)象與類(lèi)4、對(duì)象的事件與事件驅(qū)動(dòng)事件
由VB預(yù)先設(shè)置好的、能被對(duì)象識(shí)別的動(dòng)作。如:?jiǎn)螕鬋lick、裝載Load、改變Change、雙擊DblClick等。事件驅(qū)動(dòng)Windows下應(yīng)用程序的用戶(hù)界面都是由窗體、菜單和控件等對(duì)象構(gòu)成的,各個(gè)對(duì)象的動(dòng)作及各對(duì)象之間的關(guān)聯(lián),完全取決于操作者所做的操作。即程序的運(yùn)行并沒(méi)有固定的順序。Windows程序的這種工作模式,稱(chēng)為事件驅(qū)動(dòng)方式。2024/9/872024/9/88對(duì)象待命用戶(hù)/系統(tǒng)觸發(fā)事件對(duì)象對(duì)事件的響應(yīng)事件驅(qū)動(dòng)的基本過(guò)程2.2窗體
窗體是VB最基本的對(duì)象。它是一個(gè)“容器”對(duì)象,設(shè)計(jì)者在窗體上放置其他控件,完成界面設(shè)計(jì)。1.窗體的屬性Name:窗體名稱(chēng)。在程序代碼中以窗體名稱(chēng)來(lái)識(shí)別不同的窗體對(duì)象。窗體名必須以一個(gè)字母開(kāi)頭,可包含數(shù)字和下劃線(xiàn),但不能包含空格和標(biāo)點(diǎn)符號(hào)。BorderStyle:窗體邊框樣式。取值范圍為0~5。
Caption:窗體標(biāo)題。此屬性確定窗體標(biāo)題欄中所顯示的文本。2024/9/89ControlBox:值為T(mén)rue或False,設(shè)置窗體左上角是否有控制鈕。MaxButton:值為T(mén)rue或False,設(shè)置窗體右上角是否有極大化控制鈕。MinButton:值為T(mén)rue或False,設(shè)置窗體右上角是否有極小化控制鈕。Left、Top、Height和Width:決定窗體位置與大小。Left和Top是窗體左上角的坐標(biāo)(屏幕左上角為坐標(biāo)零點(diǎn));Height和Width是窗體的高度和寬度。1.窗體的屬性Icon:圖標(biāo)屬性。該屬性決定窗體左上角的小圖標(biāo)。2024/9/810ScaleWidth:窗體的內(nèi)部寬度,使用ScaleMode設(shè)置的單位。ScaleHeight:窗體的內(nèi)部高度,使用ScaleMode設(shè)置的單位。Font:設(shè)置窗體上正文的字體、字型和字號(hào)。BackColor與ForeColor:窗體的背景色與前景色。1.窗體的屬性WindowState:設(shè)置窗體執(zhí)行時(shí)以什么狀態(tài)顯示。0(缺省值)正常;1最小化(最小化為一個(gè)圖標(biāo));2最大化(擴(kuò)大到最大尺寸)2024/9/811AutoRedraw:值為T(mén)rue或False,設(shè)置窗體是否能自動(dòng)刷新或重畫(huà)窗體上的所有圖形。KeyPreview:值為T(mén)rue或False,設(shè)置是否在控件的鍵盤(pán)事件(KeyDown、KeyUp和KeyPress)之前激活窗體的鍵盤(pán)事件。1.窗體的屬性Enabled:活動(dòng)屬性。值為T(mén)rue或False,決定窗體是否響應(yīng)用戶(hù)發(fā)出的事件。Visible:可視屬性。值為T(mén)rue或False,決定窗體是否可見(jiàn)。Picture:設(shè)置窗體顯示的圖片。2024/9/8122.窗體的事件Click:?jiǎn)螕羰录?;DblClick:雙擊事件;Load:裝載事件;Unload:卸載事件;Deactivate:失去激活事件,當(dāng)窗體失去激活狀態(tài),即另一個(gè)窗體成為當(dāng)前窗口時(shí);Activate:激活事件,當(dāng)窗體變?yōu)楫?dāng)前窗口時(shí),引發(fā)本事件;Paint:繪畫(huà)事件,窗口被移動(dòng)、放大時(shí),觸發(fā)該事件。2024/9/8133.窗體的方法Hide:隱藏方法;Move:移動(dòng)方法;Print:打印方法;Refresh:刷新方法;Show:顯示方法;Cls:清除方法;PrintForm:打印窗體方法。2024/9/814【例2-1】設(shè)計(jì)一個(gè)窗體,窗體上有3個(gè)命令按鈕:“打印”、“清除”、“退出”,如圖所示。當(dāng)程序運(yùn)行后,鼠標(biāo)點(diǎn)擊“打印”命令按鈕,在窗體上打印“我喜歡VB!”(24號(hào)字)。當(dāng)點(diǎn)擊“清除”按鈕,窗體上的內(nèi)容消失。單擊“退出”按鈕,程序運(yùn)行結(jié)束。例題2024/9/815設(shè)計(jì)步驟1.設(shè)計(jì)用戶(hù)界面。在窗體上放置3個(gè)命令按鈕。并設(shè)置它們的屬性,如下表所示。對(duì)象屬性名屬性值對(duì)象屬性名屬性值窗體名稱(chēng)Form1命令按鈕2 名稱(chēng) CmdClsCaption窗體示例Caption 清除命令按鈕1 名稱(chēng) CmdPrint命令按鈕3 名稱(chēng) CmdExitCaption 打印Caption 退出2024/9/8162.進(jìn)入代碼設(shè)計(jì)窗口,選擇窗體的Load事件過(guò)程,編寫(xiě)代碼,設(shè)置窗體上的打印字號(hào)為24號(hào)。(也可在界面設(shè)計(jì)時(shí)設(shè)計(jì)!)代碼如下:PrivateSubForm_Load()Form1.FontSize=24EndSub2024/9/8173.雙擊“打印”按鈕,進(jìn)入代碼編輯窗口,編寫(xiě)如下代碼:4.雙擊“清除”按鈕,進(jìn)入代碼編輯窗口,編寫(xiě)如下代碼:PrivateSubCmdPrint_Click()Print"我喜歡VB!"EndSubPrivateSubCmdCls_Click()Form1.ClsEndSub2024/9/8185.雙擊“退出”按鈕,進(jìn)入代碼編輯窗口,編寫(xiě)如下代碼:6.保存程序。PrivateSubCmdexit_Click()EndEndSub2024/9/8192.3控件
控件是預(yù)先定義好的,能夠直接使用的對(duì)象,與窗體共同構(gòu)成用戶(hù)界面。VB的控件分為3類(lèi),本課程主要研究標(biāo)準(zhǔn)控件標(biāo)準(zhǔn)控件(內(nèi)部控件)ActiveX控件可插入的對(duì)象。2024/9/8202024/9/821標(biāo)準(zhǔn)控件可從控件工具箱中獲?。籄ctiveX控件可通過(guò)“工程|部件|控件”獲?。豢刹迦雽?duì)象可通過(guò)“工程|部件|可插入對(duì)象”獲取。標(biāo)準(zhǔn)控件的學(xué)習(xí)在本書(shū)的第六章2024/9/822第三章簡(jiǎn)單程序設(shè)計(jì)3.2
VB環(huán)境下應(yīng)用程序開(kāi)發(fā)步驟3.1VisualBasic語(yǔ)句
3.3應(yīng)用示例20142024/9/823創(chuàng)建程序的用戶(hù)界面設(shè)置界面上各個(gè)對(duì)象的屬性編寫(xiě)對(duì)象響應(yīng)事件的程序代碼保存工程測(cè)試、調(diào)試應(yīng)用程序創(chuàng)建可執(zhí)行程序制作安裝程序3.2VB環(huán)境下應(yīng)用程序開(kāi)發(fā)步驟
2024/9/824新建一個(gè)工程,實(shí)現(xiàn)如下功能,鼠標(biāo)單擊Form1窗體,標(biāo)簽上顯示“Youhaveclickedtheform1!”(運(yùn)行結(jié)果見(jiàn)下圖)開(kāi)發(fā)步驟示例2024/9/825開(kāi)發(fā)步驟——界面及屬性設(shè)置(1)設(shè)計(jì)放置一個(gè)標(biāo)簽控件的窗體;(2)設(shè)置標(biāo)簽控件屬性-字體、字號(hào)、顏色等2024/9/826設(shè)計(jì)步驟1.設(shè)計(jì)用戶(hù)界面。包括:一個(gè)窗體,一個(gè)標(biāo)簽,屬性設(shè)置如下表所示。對(duì)象屬性屬性值Form1Caption實(shí)驗(yàn)1_1NamefrmExe1_1Width5000Height4000Left300Top300BackColor藍(lán)色ForeColor黃色LabelCaption歡迎!NamelblDisplayFont2號(hào)、宋體Alignment水平居中BackColor白色ForeColor紅色2024/9/8271.語(yǔ)句:執(zhí)行具體操作的命令,是VB程序的最基本成分。2.例如:
PrivateSubForm_Click()
Me.lblDisplay.Caption="Youhaveclickedtheform1!"
EndSub開(kāi)發(fā)步驟——響應(yīng)事件的程序代碼2、選擇Click事件1、選擇Form窗體對(duì)象3、輸入響應(yīng)事件的程序代碼2024/9/8283.1VisualBasic語(yǔ)句1.語(yǔ)句輸入長(zhǎng)語(yǔ)句分成多行輸入:在行的末尾用續(xù)行符“_”將長(zhǎng)語(yǔ)句分成多行。
DimSnoasstring,snameasstring_ sageasinteger,ssexasstring多個(gè)語(yǔ)句合并為同一行輸入:在一個(gè)代碼行上寫(xiě)入多個(gè)語(yǔ)句,在語(yǔ)句中用冒號(hào)“:”分隔。
x=100:y=200:z=332.書(shū)寫(xiě)規(guī)范語(yǔ)句輸入時(shí),可不區(qū)分大小寫(xiě)。續(xù)行符2024/9/829不推薦使用3.注釋語(yǔ)句注釋語(yǔ)句為非執(zhí)行語(yǔ)句,用“‘
”或Rem來(lái)標(biāo)識(shí)僅用來(lái)說(shuō)明程序中某些語(yǔ)句的功能和作用,以增加程序的可讀性。VB程序中注釋過(guò)的語(yǔ)句會(huì)自動(dòng)變?yōu)榫G色。
PrivateSubForm_Click()
Me.lblDisplay.Caption="Youhaveclickedtheform1!“
Rem該語(yǔ)句給標(biāo)簽控件的Caption屬性賦值
EndSub4.結(jié)束語(yǔ)句:
結(jié)束程序的執(zhí)行。用戶(hù)單擊窗體時(shí),程序退出執(zhí)行狀態(tài)。
PrivateSubForm_Click() End
EndSub3.2VisualBasic語(yǔ)句2024/9/8303.3應(yīng)用實(shí)例【例3-1】設(shè)計(jì)程序?qū)崿F(xiàn)攝氏溫度和華氏溫度的轉(zhuǎn)換。在界面中輸入攝氏溫度以后,單擊“轉(zhuǎn)換”按鈕則將該攝氏溫度轉(zhuǎn)換為華氏溫度。將攝氏溫度轉(zhuǎn)成華氏溫度的轉(zhuǎn)換公式是,將攝氏溫度直接乘以9,除以5,再加上32即可。運(yùn)行界面如下圖。例題2024/9/831設(shè)計(jì)步驟1.設(shè)計(jì)用戶(hù)界面。包括:一個(gè)窗體,兩個(gè)命令按鈕,兩個(gè)標(biāo)簽,兩個(gè)文本框。屬性如下表所示。對(duì)象屬性屬性值窗體名稱(chēng)(Name)Form1(缺?。〤aption(標(biāo)題)溫度轉(zhuǎn)換標(biāo)簽1名稱(chēng)(Name)Label1Caption(標(biāo)題)攝氏溫度:標(biāo)簽2名稱(chēng)(Name)Label2Caption(標(biāo)題)華氏溫度:文本框1名稱(chēng)(Name)TxtSHEText空文本框2名稱(chēng)(Name)TxtHUAText空命令按鈕1名稱(chēng)(Name)Command1Caption(標(biāo)題)轉(zhuǎn)換命令按鈕2名稱(chēng)(Name)Command2Caption(標(biāo)題)退出2024/9/8322.進(jìn)入代碼設(shè)計(jì)窗口,選擇Command1的Click事件過(guò)程,編寫(xiě)代碼如下:PrivateSubCommand1_Click() DimsheAsSingle,huaAsSingleshe=Val(TxtSHE.Text)hua=(she*9/5)+32TxtHUA.Text=huaEndSub選擇Command2的Click事件過(guò)程,編寫(xiě)代碼如下:PrivateSubCommand2_Click()EndEndSub3.保存程序。2024/9/833第四章VisualBasic語(yǔ)言基礎(chǔ)20144.1數(shù)據(jù)類(lèi)型4.2常量和變量4.3函數(shù)4.4運(yùn)算符與表達(dá)式4.1數(shù)據(jù)類(lèi)型數(shù)據(jù)是程序處理的對(duì)象。數(shù)據(jù)類(lèi)型確定了數(shù)據(jù)如何存儲(chǔ),即所占存儲(chǔ)單元的大小和存儲(chǔ)格式。對(duì)不同類(lèi)型的數(shù)據(jù)有不同的存儲(chǔ)形式、允許的運(yùn)算方式,具有不同的取值范圍。在程序設(shè)計(jì)中,要隨時(shí)注意所用數(shù)據(jù)的類(lèi)型。VB的數(shù)據(jù)類(lèi)型VB的數(shù)據(jù)類(lèi)型有系統(tǒng)定義和自定義兩種,系統(tǒng)定義的數(shù)據(jù)類(lèi)型稱(chēng)為標(biāo)準(zhǔn)類(lèi)型,也稱(chēng)基本數(shù)據(jù)類(lèi)型。自定義數(shù)據(jù)類(lèi)型是由若干標(biāo)準(zhǔn)類(lèi)型組合成的某種結(jié)構(gòu)。1、基本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型具有3個(gè)要素:名稱(chēng):如Single表示單精度數(shù)據(jù)類(lèi)型;占內(nèi)存的大小:如一個(gè)Single類(lèi)型的數(shù)占4個(gè)B;類(lèi)型聲明符:如Single類(lèi)型的類(lèi)型聲明符為!數(shù)據(jù)類(lèi)型占內(nèi)存大小數(shù)據(jù)有效范圍類(lèi)型聲明符Integer(整型)2字節(jié)-32,768~32,767%Long(長(zhǎng)整型)4字節(jié)-2,147,483,648~2,147,483,647&Single(單精度實(shí)型)4字節(jié)負(fù)數(shù):-3.402823E38~-1.401298E-45正數(shù):1.401298E-45~3.402823E38!Double(雙精度實(shí)型)8字節(jié)負(fù)數(shù):-1.79769313486232E308~-4.94065645841247E-324正數(shù):4.94065645841247E-324~1.79769313486232E308#Currency(貨幣型)8字節(jié)-922,337,203,685,477.5808~922,337,203,685,477.5807@String(字符串型)字符串長(zhǎng)度0~65,535個(gè)字符$Byte(字節(jié)型)1字節(jié)0~255無(wú)Boolean(布爾型)2字節(jié)True或False無(wú)Date(日期型)8字節(jié)100年1月1日~9999年12月31日無(wú)Object(對(duì)象型)4字節(jié)任何對(duì)象引用無(wú)Variant(通用型)可以表示任何數(shù)據(jù)類(lèi)型,也稱(chēng)變體型VisualBasic基本數(shù)據(jù)類(lèi)型表數(shù)值型(Numeric)VB中的數(shù)值型數(shù)據(jù)分為整數(shù)型和實(shí)數(shù)型兩大類(lèi)。整數(shù)型:整型數(shù)是不帶小數(shù)點(diǎn)和指數(shù)符號(hào)的數(shù)。包括整型、長(zhǎng)整型和字節(jié)型整數(shù)。實(shí)數(shù)型:實(shí)型數(shù)是既有整數(shù)部分又有小數(shù)部分的數(shù)。包括:?jiǎn)尉?、雙精度和貨幣型。注意比較這些數(shù)據(jù)類(lèi)型的存儲(chǔ)大小和取值范圍,以避免錯(cuò)誤使用。整數(shù)型有符號(hào)型:整型、長(zhǎng)整型無(wú)符號(hào)型:字節(jié)型。整型(Integer,類(lèi)型符%)整型數(shù)用兩個(gè)字節(jié)存儲(chǔ),取值范圍是-215~+215-1,即-32768~+32767。例如:15,-345,654%√
都是整數(shù)型。
45678%
會(huì)發(fā)生溢出錯(cuò)誤。長(zhǎng)整型(Long,類(lèi)型符&)長(zhǎng)整型用4個(gè)字節(jié)存儲(chǔ),取值范圍是-231~231-1,即-2147483648~+2147483647。例如:123456,45678&字節(jié)型(Byte)用一個(gè)字節(jié)存儲(chǔ),取值范圍是0到255無(wú)符號(hào)實(shí)數(shù)型浮點(diǎn)型:?jiǎn)尉刃?、雙精度型定點(diǎn)型:貨幣型單精度浮點(diǎn)數(shù)(Single,類(lèi)型符!)單精度數(shù)用4個(gè)字節(jié)存儲(chǔ),有7位有效數(shù)字,取值范圍:
1.401298E-45<|x|<3.402823E+38。例如:3.14!,2.718282
雙精度浮點(diǎn)數(shù)(Double,類(lèi)型符#)雙精度數(shù)用8個(gè)字節(jié)存儲(chǔ),有15位有效數(shù)字,取值范圍是4.94065645841247E-324<|x|<1.79769313486232E308。指數(shù)符號(hào):E單精度,D雙精度例如:
3.1415926535,3.14159265D8,8.573264907D-15,3.14#,3.14D-2貨幣型(Currency,類(lèi)型符@)貨幣型數(shù)據(jù)主要用來(lái)表示貨幣值,用8個(gè)字節(jié)存儲(chǔ),貨幣型是定點(diǎn)數(shù),精確到小數(shù)點(diǎn)后面第4位,第五位四舍五入。整數(shù)部分最多15位。例如:3.56@、65.123456@都是貨幣型。
字符串型(String)字符串包括除雙引號(hào)、回車(chē)以外可打印的所有字符,雙引號(hào)作為字符串的定界符號(hào)。例如:"1234"
"張三"注意:字符串中空格是有效字符。邏輯型(Boolean)邏輯型數(shù)據(jù)只有兩個(gè):邏輯真True邏輯假False用2個(gè)字節(jié)存儲(chǔ)日期型(Date)用#括起來(lái),表示日期和時(shí)間數(shù)據(jù),存儲(chǔ):用8個(gè)字節(jié),范圍:公元100年1月1日~9999年12月31日。日期可以用“/”、“,”、“-”分隔開(kāi),#2014-9-9#順序可以是年、月、日,也可以是月、日、年時(shí)間必須用“:”分隔,順序是:時(shí)、分、秒。例如:
#1999-08-1110:25:00pm##08/23/99##03-25-7520:30:00##98,7,18#
都是有效的日期型數(shù)據(jù)。在VB中會(huì)自動(dòng)轉(zhuǎn)換成mm/dd/yyyy(月/日/年)的形式。5.變體型(Variant)變體型也稱(chēng)為可變類(lèi)型,它是一種特殊的數(shù)據(jù)類(lèi)型。它的類(lèi)型可以是前面敘述的數(shù)值型、日期型、字符型等,完全取決于程序的需要。從而增加了VB數(shù)據(jù)處理的靈活性。但是,使用變體型時(shí)降低效率可能由數(shù)制轉(zhuǎn)換帶來(lái)較大的誤差占用更多的內(nèi)存單元結(jié)論:合理地選擇使用數(shù)據(jù)類(lèi)型非常重要!4.2常量和變量常量:程序執(zhí)行時(shí)保持不變的數(shù)據(jù)。變量:在程序執(zhí)行時(shí)其值可以改變的數(shù)據(jù)。例如:求解圓周長(zhǎng)的代碼,L=2*3.14*R其中的2和3.14是不會(huì)改變的量,即常量,而半徑R和周長(zhǎng)L都是變量。4.2.1常量在程序執(zhí)行的過(guò)程中保持不變的數(shù)據(jù)稱(chēng)為常量。VB中常量
常量直接常量
符號(hào)常量用戶(hù)自定義常量系統(tǒng)定義常量1.數(shù)值常量一般的數(shù)值常量由正負(fù)號(hào)、數(shù)字和小數(shù)點(diǎn)組成。有4種表示方式:即整數(shù)型、長(zhǎng)整型、貨幣型和浮點(diǎn)型。如:253456725&&HFF&o1233.143.14#1E-52.5D102.字符常量把一串字符用引號(hào)括起來(lái),就構(gòu)成一個(gè)字符常量。如:“visual”直接常量直接出現(xiàn)在代碼中,也稱(chēng)為文字常量,直接常量的表示形式?jīng)Q定它的類(lèi)型和值。1.直接常量4.日期常量日期型常量的一般表示形式:mm/dd/yyyy。如2013年9月20日可表示為:
#9/20/2013#3.邏輯型常量邏輯型(布爾型)常量只有兩個(gè)取值:True、False。2.符號(hào)常量以符號(hào)形式表示的常量。自定義符號(hào)常量形式:[Public|Private]Const<常量名>[As數(shù)據(jù)類(lèi)型]=<表達(dá)式>如:
ConstMAXasInteger=999ConstMYSTRING=“VisualBasic”4.2.2變量以符號(hào)形式出現(xiàn)在程序中,在程序執(zhí)行過(guò)程中,其值可以改變的量稱(chēng)為變量。變量的命名規(guī)則首字符必須是字母;長(zhǎng)度不超過(guò)255個(gè)字符;在作用域內(nèi)必須惟一;作為變量名的字符串內(nèi)不得包括點(diǎn)號(hào)和用于類(lèi)型說(shuō)明的字符%、&、!、#、@、$;不得使用系統(tǒng)保留字。2.變量說(shuō)明語(yǔ)句
變量說(shuō)明,就要要求VB創(chuàng)建這個(gè)變量,任何變量都必須在說(shuō)明以后才能使用。
說(shuō)明變量,必須指明該變量的三個(gè)要素:名稱(chēng)、類(lèi)型和有效的作用范圍。Dim<變量名>As<類(lèi)型>[,<變量名>[As<類(lèi)型>]…Private<變量名>As<類(lèi)型>[,<變量名>[As<類(lèi)型>]…Public<變量名>As<類(lèi)型>[,<變量名>[As<類(lèi)型>]…Static<變量名>As<類(lèi)型>[,<變量名>[As<類(lèi)型>]…例如下面語(yǔ)句聲明了一個(gè)名為X的整型變量,和一個(gè)名為Y的單精度型變量DimXAsInteger,YAsSingle(1)用Dim和Static定義變量名稱(chēng)和類(lèi)型(標(biāo)準(zhǔn)定義方法)(2)省略As子句
Dim變量名As數(shù)據(jù)類(lèi)型Static變量名As數(shù)據(jù)類(lèi)型Static和Dim的不同之處:在執(zhí)行一個(gè)過(guò)程結(jié)束時(shí),過(guò)程中所用到的Static變量的值會(huì)保留,下次再調(diào)用此過(guò)程時(shí),變量的初值是上次調(diào)用結(jié)束時(shí)被保留的值;而Dim定義的變量在過(guò)程結(jié)束時(shí)不保留,每次調(diào)用時(shí)需要重新初始化(后續(xù)課程詳解)。
Dim變量名變量將會(huì)定義為變體類(lèi)型,變體型變量可以存放各種類(lèi)型的數(shù)據(jù),賦給變量什么類(lèi)型的值它就存放什么類(lèi)型的值。
(3)用類(lèi)型聲明符定義變量類(lèi)型(隱式說(shuō)明)例如,x%是一個(gè)整型變量,y$是一個(gè)字符串變量,m#是一個(gè)雙精度浮點(diǎn)型變量。
符號(hào)數(shù)據(jù)類(lèi)型
舉例
$String strName$% Integer ITerm%,var%& Long colorValue&! Single distance!# Double ExactDistance#,@ Currency cSalaries@OptionExplicit語(yǔ)句在模塊中使用OptionExplicit語(yǔ)句,系統(tǒng)將檢查模塊中所有未加顯式說(shuō)明的變量。3.變量作用域變量的作用域:分為——局部變量、窗體/模塊級(jí)變量、全局變量。局部變量在過(guò)程內(nèi)用dim(static)定義,只在本過(guò)程內(nèi)有效。窗體/模塊級(jí)變量在過(guò)程外用dim或private定義,在本窗體/模塊內(nèi)所有過(guò)程都有效。全局變量在窗體模塊中用Public,標(biāo)準(zhǔn)模塊中用Public或Global定義,在整個(gè)應(yīng)用程序中有效。注意:Global不能在窗體模塊和類(lèi)模塊中聲明,Public可以在各種模塊中聲明說(shuō)明:標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為.BAS)是應(yīng)用程序內(nèi)其它模塊訪(fǎng)問(wèn)的過(guò)程和聲明的容器注意1變量已經(jīng)定義,即有值,VB的變量都有初始值:變量類(lèi)型初始值所有數(shù)值類(lèi)型0變長(zhǎng)字符串空串定長(zhǎng)字符串固定長(zhǎng)度的空格邏輯性False變體型Empty注意2可以用一條變量定義語(yǔ)句定義多個(gè)變量,但每個(gè)變量都要用AsType短語(yǔ)說(shuō)明其類(lèi)型,哪個(gè)沒(méi)有說(shuō)明,哪個(gè)即為變體型。例如:DimX,Y
,ZAsInteger上面語(yǔ)句定義了3個(gè)變量,其中Z為integer,而X和Y都是Variant類(lèi)型注意3:變量可以隱式說(shuō)明,即不用Dim語(yǔ)句進(jìn)行說(shuō)明,而是在所用到的變量名后面加上一個(gè)類(lèi)型符。例如:PrivateSubForm_Click()
k&=1
Country$="China"Printk,CountryEndSub使用未加類(lèi)型符的變量時(shí),系統(tǒng)默認(rèn)為變體型(Variant)。建議初學(xué)者養(yǎng)成對(duì)變量顯示說(shuō)明的習(xí)慣,以避免一些不必要的錯(cuò)誤。注意4:使用OptionExplicit語(yǔ)句模塊中使用該語(yǔ)句之后,系統(tǒng)將禁止未加顯式說(shuō)明的變量,一旦發(fā)現(xiàn)有這樣的變量存在,就會(huì)產(chǎn)生一個(gè)錯(cuò)誤,提示程序員改正。該語(yǔ)句必須寫(xiě)在模塊的最頂部。4.3函數(shù)在VisualBasic中,有兩類(lèi)函數(shù):內(nèi)部函數(shù)和用戶(hù)自定義函數(shù)。本章節(jié)討論內(nèi)部函數(shù)(也稱(chēng)標(biāo)準(zhǔn)函數(shù)或系統(tǒng)函數(shù))。使用函數(shù)稱(chēng)為函數(shù)調(diào)用。函數(shù)調(diào)用形式如下:
<函數(shù)名>(p1,p2,…)內(nèi)部函數(shù)包括:數(shù)學(xué)函數(shù);
轉(zhuǎn)換函數(shù);字符函數(shù);日期與時(shí)間函數(shù)一.?dāng)?shù)學(xué)函數(shù)函數(shù)說(shuō)明示例返回值Sin(x)返回自變量x的正弦值Sin(0)0Cos(x)返回自變量x的余弦值Cos(0)1Tan(x)返回自變量x的正切值Tan(0)0Atn(x)返回自變量x的反正切值A(chǔ)tn(0)0Abs(x)返回自變量x的絕對(duì)值A(chǔ)bs(-4)4Exp(x)返回以e為底,以x為指數(shù)的值,即e的x次方exExp(1)2.7183Sqr(x)返回x的平方根Sqr(9)3Sgn(x)返回?cái)?shù)的符號(hào)值:當(dāng)x為負(fù)數(shù)時(shí),函數(shù)返回-1;當(dāng)x為0時(shí),函數(shù)返回0;當(dāng)x為正數(shù)時(shí),函數(shù)返回1Sgn(4)1Log(x)返回以e為底的自然對(duì)數(shù)Log(2.7183)1Round(x,[n])對(duì)x進(jìn)行四舍五入,保留的小數(shù)位數(shù)由n指定Round(5.346,2)5.35二.轉(zhuǎn)換函數(shù)函數(shù)說(shuō)明示例返回值Int(x)求不大于自變量x的最大數(shù)Int(-4.2)-5Fix(x)去掉1個(gè)浮點(diǎn)數(shù)的小數(shù)部分,保留其整數(shù)部分Fix(-4.7)-4Cint(x)把x的小數(shù)部分四舍五入,轉(zhuǎn)換為整數(shù)Cint(-4.7)-5Asc(x$)返回字符串x$中第一個(gè)字符的ASCII碼Asc(“abc”)97Chr(x)把x的值轉(zhuǎn)換為相應(yīng)的ASCII碼Chr(110)或Chr$(110)“n”Str(x)把x的值轉(zhuǎn)換為一個(gè)字符串Str(23.4)或Str$(23.4)“23.4”Val(x)將數(shù)字字符串x轉(zhuǎn)換為數(shù)值Val(“45AB”)45Lcase(x)將x轉(zhuǎn)換為小寫(xiě)字母Lcase(“VisualBasic”)“visualbasic”Ucase(x)將x轉(zhuǎn)換為大寫(xiě)字母Ucase(“VisualBasic”)“VISUALBASIC”注意分?jǐn)?shù)部分恰好為0.5時(shí),CInt函數(shù)通常將其四舍五入為最接近的偶數(shù)Val:在它不能識(shí)別為數(shù)字的第一個(gè)字符上,停止讀入字符串。那些被認(rèn)為是數(shù)值的一部分的符號(hào)和字符,例如美圓號(hào)與逗號(hào),都不能被識(shí)別。但是函數(shù)可以識(shí)別進(jìn)位制符號(hào)&O(八進(jìn)制)和&H(十六進(jìn)制)。空白、制表符和換行符都從參數(shù)中被去掉。PrintCint
(-4.5)PrintCint
(2.5)PrintCint
(3.5)Printval(”4.5ABCD”)Printval(”4.5ABCD”)Printval(”
4.5ABCD”)Printval(”4..5ABCD”)Printval(”&HFF”)Printval(“HFF”)例子三.字符串函數(shù)函數(shù)說(shuō)明示例返回值Ltrim$(字符串)去掉字符串左邊的空白字符Ltrim$(“□□OK”)“OK”Rtrim$(字符串)去掉字符串右邊的空白字符Rtrim$(“OK□□”)“OK”Left$(字符串,n)取字符串左部的n個(gè)字符Left$(“ABCD”,2)“AB”Right$(字符串,n)取字符串右部的n個(gè)字符Right$(“ABCD”,2)“CD”Mid$(字符串,p,n)從位置p開(kāi)始取字符串的n個(gè)字符MID$(“ABCD”,2,2)“BC”Len(字符串)測(cè)試字符串的長(zhǎng)度Len(“VisualBasic”)12String$(n,字符串)返回由n個(gè)字符組成的字符串String$(4,“*”)“****”Space$(n)返回n個(gè)空格Space$(3)“□□□”Instr([start],字符串1,字符串2)返回字符串2在字符串1中的首次出現(xiàn)的位置Instr(“Computer”,“pu”)4四.日期與時(shí)間函數(shù)函數(shù)說(shuō)明例返回值Date返回系統(tǒng)當(dāng)前日期Date2012-7-25Time返回系統(tǒng)當(dāng)前時(shí)間
time9:35:56AMNow返回系統(tǒng)當(dāng)前日期和時(shí)間Now2012-7-259:31:26AMYear(x)返回指定日期(x)的年份Year("2012-07-25")2012Month(x)返回指定日期(x)的月份Month("2012-07-25")7Day(x)返回指定日期(x)的某一日Day("2012-07-25")25Weekday(x[,n])返回日期(x)是一周中的第幾天Weekday("2012-07-25")3五.隨機(jī)函數(shù)Rnd(x)
產(chǎn)生一個(gè)在[0,1)區(qū)間均勻分布的隨機(jī)數(shù)。如:隨機(jī)生成一個(gè)兩位的整數(shù),可用下式:
Int((99-10+1)*Rnd+10)即
Int(90*Rnd+10)說(shuō)明:當(dāng)一個(gè)應(yīng)用程序不斷地重復(fù)使用隨機(jī)函數(shù)時(shí),同一序列的隨機(jī)數(shù)會(huì)反復(fù)出現(xiàn)。可用Randomize語(yǔ)句消除這種情況。用法:Randomize[(x)]其中:x是一個(gè)整型數(shù),它是隨機(jī)數(shù)發(fā)生器的“種子數(shù)”,可以省略。使用該函數(shù)能生成某個(gè)范圍內(nèi)的隨機(jī)整數(shù),公式如下:Int((upperbound-lowerbound+1)*Rnd+lowerbound)這里,upperbound是隨機(jī)數(shù)范圍的上限,而lowerbound則是隨機(jī)數(shù)范圍的下限。4.4運(yùn)算符與表達(dá)式VB中的運(yùn)算符和表達(dá)式可分為算術(shù)運(yùn)算符和算術(shù)表達(dá)式、關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式。一.算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符含義舉例說(shuō)明+加25+30結(jié)果為55+字符連接“VB”+“程序”結(jié)果為“VB程序”-減40-10結(jié)果為30-取負(fù)-22結(jié)果為-22單目運(yùn)算,22取負(fù)*乘4*2結(jié)果為8/除7/2結(jié)果為3.5\整除7\3結(jié)果為2結(jié)果取商的整數(shù)部分Mod取余7Mod3結(jié)果為1兩數(shù)相除之后的余數(shù)^求冪3^3結(jié)果為27&字符連接“VB”&“程序”結(jié)果為“VB程序”兩個(gè)字符串連接算術(shù)運(yùn)算符的優(yōu)先級(jí):()>正負(fù)號(hào)>函數(shù)>乘方^>*/>\>MOD>+-關(guān)系運(yùn)算也稱(chēng)比較運(yùn)算,關(guān)系表達(dá)式的值是一個(gè)邏輯值,邏輯值只有“真”(True)和“假”(False)兩個(gè)。二.關(guān)系運(yùn)算符與關(guān)系表達(dá)式運(yùn)算符含義舉例說(shuō)明=等于13=13結(jié)果是True>大于50>55結(jié)果是False>=大于等于6>=6結(jié)果是True<小于“cat”<“bat”
結(jié)果是False“c”大于“b”所以結(jié)果為假<=小于等于16-2<=14結(jié)果是True<>不等于40<>30結(jié)果是TrueLike字符串匹配“basic”Like“b*”
結(jié)果是True*為通配符Is對(duì)象比較Form1IsForm2結(jié)果是FalseForm1和Form2均為對(duì)象三.邏輯運(yùn)算符與邏輯表達(dá)式
邏輯運(yùn)算真值表邏輯運(yùn)算是對(duì)邏輯值進(jìn)行的運(yùn)算。abaAndbaOrbNotaaXorbaEqvbaImpbTrueTrueTrueTrueFalseFalseTrueTrueTrueFalseFalseTrueFalseTrueFalseFalseFalseTrueFalseTrueTrueTrueFalseTrueFalseFalseFalseFalseTrueFalseTrueTrue邏輯運(yùn)算符的優(yōu)先順序?yàn)椋篘ot→And→Or→Xor→Eqv→Imp。運(yùn)算符含義舉例說(shuō)明Not邏輯非Not(“a”<“c”)結(jié)果為假Not真結(jié)果為假
And邏輯與3>8And3<9結(jié)果為假假And真結(jié)果為假Or邏輯或5<9Or9>1結(jié)果為真真Or真結(jié)果為真Xor邏輯異或5<7Xor8<1結(jié)果為真真Xor假結(jié)果為真Eqv邏輯等于“a”<“c”Eqv“c”>“e”
結(jié)果為假真Eqv假結(jié)果為假I(mǎi)mp邏輯蘊(yùn)含11>3Imp11>15結(jié)果為假真Imp假前真后假為假算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符
dima,b,ca=8:b=10:c=6Not(a-1>b)a>b+3Andb>ca>bOrb>c四.各運(yùn)算符的優(yōu)先次序FalseTrueTrue注意1:表達(dá)式的組成和結(jié)果表達(dá)式由常量、變量、函數(shù)、運(yùn)算符以及圓括號(hào)(),按照一定的規(guī)則組成,不管表達(dá)式的形式如何,都會(huì)計(jì)算出一個(gè)結(jié)果,該結(jié)果的類(lèi)型由參與運(yùn)算的數(shù)據(jù)和運(yùn)算符決定。注意2:表達(dá)式的書(shū)寫(xiě)規(guī)則1表達(dá)式中的字符沒(méi)有高低、大小的區(qū)別;例如:
a+b
等效于A+B
a2
或f0
均為錯(cuò)誤的表達(dá)式只能使用圓括號(hào),可以多重使用,圓括號(hào)必須成對(duì)出現(xiàn);例如:
1/((a+b)*c) √ 1/[(a+b)*c]
注意3:表達(dá)式的書(shū)寫(xiě)規(guī)則2VB表達(dá)式中的乘號(hào)“*”不能省略;例如:
ab
該表達(dá)式不會(huì)被理解為a與b相乘,而被理解為一個(gè)名為ab的變量。能用內(nèi)部函數(shù)的地方盡量使用內(nèi)部函數(shù):例如:a^(1/2)
最好寫(xiě)為SQR(a)例如:
數(shù)學(xué)式寫(xiě)成VB表達(dá)式為:
(-b+sqr(b^2-4*a*c))/(2*a)注意4:關(guān)系表達(dá)式和邏輯表達(dá)式當(dāng)使用關(guān)系運(yùn)算符或邏輯運(yùn)算符時(shí),表達(dá)式又稱(chēng)為關(guān)系表達(dá)式或邏輯表達(dá)式。關(guān)系運(yùn)算一般表示一個(gè)簡(jiǎn)單的條件。
例如:age>20、score>80、x+y>z等。邏輯表達(dá)式表示較復(fù)雜的條件。
例如:數(shù)學(xué)中的0<x<5,寫(xiě)成VB表達(dá)式應(yīng)為0<xAndx<5注意5:結(jié)果類(lèi)型算術(shù)表達(dá)式中相同類(lèi)型的數(shù)據(jù),計(jì)算結(jié)果也將是同一類(lèi)型。例如:
DimxasInteger,yasInteger x=324:y=324 Printx*y ‘結(jié)果發(fā)生溢出不同類(lèi)型的數(shù)據(jù),計(jì)算時(shí)結(jié)果轉(zhuǎn)化成精度高的類(lèi)型。例如:
DimxasInteger,yasLong x=324:y=324 Printx*y ‘結(jié)果為長(zhǎng)整型算術(shù)表達(dá)式中不論除數(shù)與被除數(shù)類(lèi)型如何,除法運(yùn)算的結(jié)果一般為雙精度型。例如:
DimxasInteger,yasLong x=324:y=324 Printx/y
關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)果是邏輯值:True、False。例如:
DimxasInteger,yasInteger x=324:y=324 Printx=y ‘結(jié)果顯示TrueTheEnd!第五章數(shù)據(jù)的輸入與輸出5.1賦值語(yǔ)句5.2Inputbox函數(shù)5.3msgbox函數(shù)5.4Print方法20145.1賦值語(yǔ)句1.賦值語(yǔ)句賦值語(yǔ)句是程序設(shè)計(jì)中最基本的語(yǔ)句,賦值語(yǔ)句的一般形式是:
Var=<表達(dá)式>如:
x=“NanJing”Label1.caption=“工作單位:”使用賦值語(yǔ)句還可獲取對(duì)象返回的當(dāng)前屬性值:
Var=Object.Property如:
x=text1.textVar可以是變量名或?qū)ο蟮膶傩悦?.不同數(shù)據(jù)類(lèi)型間數(shù)據(jù)的賦值(重點(diǎn))(1)當(dāng)表達(dá)式為數(shù)值型而與變量精度不同時(shí),強(qiáng)制轉(zhuǎn)換成左邊變量的精度;(2)當(dāng)表達(dá)式是數(shù)字字符串,左邊變量是數(shù)值類(lèi)型,自動(dòng)轉(zhuǎn)換成數(shù)值類(lèi)型再賦值,但當(dāng)表達(dá)式中有非數(shù)字字符或空串,則出錯(cuò)。(3)任何非字符類(lèi)型賦值給字符類(lèi)型,自動(dòng)轉(zhuǎn)換為字符類(lèi)型;(4)當(dāng)邏輯型賦值給數(shù)值型時(shí),True轉(zhuǎn)換為-1,F(xiàn)alse轉(zhuǎn)換為0;當(dāng)數(shù)值型賦值給邏輯型時(shí),非0轉(zhuǎn)換為T(mén)rue,0轉(zhuǎn)換為False;注意1:賦值語(yǔ)句不同于數(shù)學(xué)里的等式,賦值語(yǔ)句代表了一個(gè)操作,即用賦值號(hào)右邊的表達(dá)式的值去改寫(xiě)賦值號(hào)左邊變量的值,改寫(xiě)成功后,變量原有的值即被覆蓋例如:x=x+1賦值語(yǔ)句的執(zhí)行包含以下三個(gè)步驟,若其中一個(gè)步驟執(zhí)行失敗,則整個(gè)賦值語(yǔ)句執(zhí)行失?。篠tep1:計(jì)算表達(dá)式的值Step2:將表達(dá)式的類(lèi)型轉(zhuǎn)換為變量的類(lèi)型Step3:修改變量的值例如:x&=200*200‘無(wú)法完成表達(dá)式的計(jì)算
x%=“”‘空串不能轉(zhuǎn)換為Integer注意2:賦值號(hào)與關(guān)系運(yùn)算符中的“=”形式相同,但意義完全不同,區(qū)分的要領(lǐng)為:賦值號(hào)連接的是一個(gè)完整的語(yǔ)句關(guān)系運(yùn)算符連接的是一個(gè)表達(dá)式例如:a=b
a=b=c例題:以下程序段的輸出結(jié)果是
。DimaAsInteger,bAsInteger,cAsSingle
c=3.5
b=c
a=b=c
Printa05.2InputBox函數(shù)InputBox函數(shù)用來(lái)接受用戶(hù)通過(guò)鍵盤(pán)輸入的數(shù)據(jù)。它的使用形式是:V=InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])2、Prompt必需的。作為對(duì)話(huà)框消息出現(xiàn)的字符串表達(dá)式。其最大長(zhǎng)度約為1024個(gè)字符3、Title
可選的。顯示對(duì)話(huà)框標(biāo)題欄中的字符串表達(dá)式。5、X、y
可選的。成對(duì)出現(xiàn),指定對(duì)話(huà)框在屏幕上顯示時(shí)的位置。1、V可以是變體變量或字符串型變量、數(shù)值型變量。
6、Helpfile、Context
幫助文件名及幫助主題號(hào)。4、Default可選的。顯示文本框中的字符串表達(dá)式,在沒(méi)有其它輸入時(shí)為缺省值。如果省略default,則文本框?yàn)榭铡?/p>
在InputBox函數(shù)所顯示的對(duì)話(huà)框中,各參數(shù)的作用如圖所示。TitlePrompt數(shù)值輸入?yún)^(qū)編寫(xiě)一程序,用InputBox函數(shù)輸入兩個(gè)整數(shù),輸出其和。例題PrivateSubForm_Click()Dima,b,cAsIntegera=InputBox("請(qǐng)給變量a輸入一個(gè)值:")b=InputBox("請(qǐng)給變量b輸入一個(gè)值:")c=Val(a)+Val(b)PrintcEndSub注意InputBox函數(shù)的返回值是字符串型。例如 DimvAsInteger V=InputBox(“請(qǐng)輸入一個(gè)正整數(shù)”)如果用戶(hù)在對(duì)話(huà)框中什么也沒(méi)輸入,或者按“取消”鍵返回,實(shí)際上將返回空串,程序?qū)⒊霈F(xiàn)“類(lèi)型不匹配”的錯(cuò)誤。MsgBox函數(shù)用來(lái)向用戶(hù)發(fā)布提示消息,并要求用戶(hù)作出必要的響應(yīng)。它的使用形式是:MsgBox(prompt[,buttons][,title][,helpfile,context])1、Prompt必需的。字符串表達(dá)式,作為顯示在對(duì)話(huà)框中的消息。2、Buttons
可選的。C1+C2+C3+C4,由4個(gè)數(shù)值常量相加組成的式子。如果省略,則buttons的缺省值為0。
C1:指定顯示按鈕的數(shù)目及形式,
C2:使用的圖標(biāo)樣式,C3:缺省按鈕是什么C4:對(duì)話(huà)框模式3、Title可選的。在對(duì)話(huà)框標(biāo)題欄中顯示的字符串表達(dá)式。如果缺省,則顯示當(dāng)前工程的名稱(chēng)屬性。5.3MsgBox函數(shù)常數(shù)值描述vbOKOnly0只顯示確定按鈕。vbOKCancel1顯示確定和取消按鈕。vbAbortRetryIgnore2顯示放棄、重試和忽略按鈕。vbYesNoCancel3顯示是、否和取消按鈕。vbYesNo4顯示是和否按鈕。vbRetryCancel5顯示重試和取消按鈕。vbCritical16顯示臨界信息圖標(biāo)。vbQuestion32顯示警告查詢(xún)圖標(biāo)。vbExclamation48顯示警告消息圖標(biāo)。vbInformation64顯示信息消息圖標(biāo)。vbDefaultButton10第一個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton2256第二個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton3512第三個(gè)按鈕為默認(rèn)按鈕。vbDefaultButton4768第四個(gè)按鈕為默認(rèn)按鈕。vbApplicationModal0應(yīng)用程序模式:用戶(hù)必須響應(yīng)消息框才能繼續(xù)在當(dāng)前應(yīng)用程序中工作。vbSystemModal4096系統(tǒng)模式:在用戶(hù)響應(yīng)消息框前,所有應(yīng)用程序都被掛起。Buttons參數(shù)的取值C1:第一組值(0-5)用于描述對(duì)話(huà)框中顯示的按鈕類(lèi)型與數(shù)目;C2:第二組值(16,32,48,64)用于描述圖標(biāo)的樣式;C3:第三組值(0,256,512,768)用于確定默認(rèn)按鈕;C4:第四組值(0,4096)則決定消息框的樣式。該返回值是一個(gè)整數(shù),這個(gè)整數(shù)反應(yīng)了用戶(hù)點(diǎn)擊MsgBox上的哪一個(gè)按鈕。其具體返回值見(jiàn)下表。常數(shù)值按鈕vbOK1確定vbCancel2取消vbAbort3放棄vbRetry4重試vbIgnore5忽略vbYes6是vbNo7否MsgBox函數(shù)的返回值5.4Print方法Print方法用于將文本輸出到窗體上、圖片框或打印機(jī)上。如果Print方法不帶有控件對(duì)象名時(shí),它將把輸出內(nèi)容輸出到窗體上。
Print方法的使用形式是:[Object.]Printp1<s>p2<s>...s是輸出項(xiàng)之間的分隔符,可以是逗號(hào)或分號(hào)p1,p2,...是輸出項(xiàng)當(dāng)采用逗號(hào)作分隔符時(shí),兩個(gè)輸出項(xiàng)分別輸出到兩個(gè)標(biāo)準(zhǔn)分區(qū);而采用分號(hào)作分隔符時(shí),兩個(gè)輸出項(xiàng)將緊接著輸出。可以使用Tab函數(shù)和Spc函數(shù)配合定位輸出。Tab可實(shí)現(xiàn)絕對(duì)定位,Spc可插入空格。例PrivateSubForm_Click()Print"12345678901234567890"Print"a";"b";"c";"d"Print"a","b";Print"c","d"PrintTab(3);"a";Tab(7);"b"
PrintTab(3);"a",Tab(18);"b"PrintTab(3);"a",Tab(7);"b"Print"a";Spc(3);"b"Print"a";Spc(3),"b"EndSub它的作用是清除繪圖語(yǔ)句和Print語(yǔ)句產(chǎn)生的文字和圖形。語(yǔ)法格式:object.Clsobject指清除的對(duì)象,可以是窗體或圖片框。缺省則為窗體。注意:Cls方法只能清除用Print語(yǔ)句打印到對(duì)象上面的文字,不能清除窗體中的標(biāo)簽控件Cls
方法注意:若Print語(yǔ)句末尾有分隔符,則光標(biāo)不換行,下一條Print語(yǔ)句從本行結(jié)束的地方開(kāi)始若Print語(yǔ)句的末尾沒(méi)有分隔符,則光標(biāo)另起一行,下一次Print語(yǔ)句從新的行開(kāi)始不含數(shù)據(jù)項(xiàng)的Print語(yǔ)句會(huì)打印一個(gè)空行例如(1)Print“123”;
Print“456”
(2)Print“123”
Print“456”(3)Print“123”
Print“456”123456123456123456格式化函數(shù)Format(1)Format函數(shù)用于制定字符串或數(shù)字的輸出格式語(yǔ)法格式:Format(數(shù)值表達(dá)式,格式字符串)(0)數(shù)字占位符。顯示一位數(shù)字或是零。如果表達(dá)式在格式字符串中0的位置上有一位數(shù)字存在,那么就顯示出來(lái);否則,就以零顯示。小數(shù)部分四舍五入MyStr=Format(5459.4,“00000.00”)MyStr=Format(459.4,“00000.00”)MyStr=Format(459.467,“00000.00”)
(#)數(shù)字占位符。顯示一位數(shù)字或什么都不顯示。如果表達(dá)式在格式字符串中“#”的位置上有數(shù)字存在,那么就顯示出來(lái);否則,該位置就什么都不顯示四舍五入格式化函數(shù)Format(2)MyStr=Format(5459.4,“#####.##”)‘返回“5459.4”MyStr=Format(5459.56,“#####.#”)‘返回“5459.6”
格式化函數(shù)Format(3)(.)小數(shù)點(diǎn)占位符。顯示小數(shù)位數(shù)。(,)千分位符號(hào)占位符。千位符號(hào)主要是把數(shù)值小數(shù)點(diǎn)左邊超過(guò)四位數(shù)以上分出千位,小數(shù)部分不分位。逗號(hào)放整數(shù)部分中間MyStr=Format(5459.4,"##,##0.00")'返回"5,459.40"MyStr=Format(334.9,"###0.00")'返回"334.90”(%)百分比符號(hào)占位符。表達(dá)式乘以100。而百分比字符(%)會(huì)插入到格式字符串中出現(xiàn)的位置上。(+)顯示正號(hào)。通常放在格式字符串的開(kāi)頭。(-)顯示負(fù)號(hào)。通常放在格式字符串的開(kāi)頭。($)號(hào),顯示美元符號(hào)(E+,E-)指數(shù)形式格式化函數(shù)Format(4)MyStr=Format(5,“0.00%”)‘返回"500.00%“MyStr=Format(4595.678,“+###0.00”)‘返回“+4595.68"Theend!Format….Nottheend!第六章常用標(biāo)準(zhǔn)控件6.1文本控件6.2圖形控件6.3按鈕控件6.4選擇控件6.5滾動(dòng)條6.6框架6.7計(jì)時(shí)器6.1文本控件與文本有關(guān)的標(biāo)準(zhǔn)控件有兩個(gè),即標(biāo)簽與文本框。6.1.1標(biāo)簽標(biāo)簽可顯示提示性文本,但不能進(jìn)行文本的編輯。1.標(biāo)簽的主要屬性Name:標(biāo)簽名稱(chēng);Caption:標(biāo)簽標(biāo)題BorderStyle(邊框)屬性:該屬性用來(lái)設(shè)置標(biāo)簽的邊框類(lèi)型,有兩種值可選:0,代表標(biāo)簽無(wú)邊框;1,代表標(biāo)簽有邊框,并且具有三維效果。Font:設(shè)置標(biāo)簽上文字的字體、字型和字號(hào),可在設(shè)計(jì)界面或程序代碼中設(shè)置該屬性在設(shè)計(jì)界面時(shí)設(shè)置:?jiǎn)螕鬎ont屬性后的按鈕,彈出字體設(shè)置對(duì)話(huà)框,如下圖所示。在程序中設(shè)置Font屬性:設(shè)置字體:標(biāo)簽對(duì)象名.FontName="字體類(lèi)型"設(shè)置字體大?。簶?biāo)簽對(duì)象名.FontSize=X設(shè)置字體效果:標(biāo)簽對(duì)象名.效果名=True/False粗體——Font.Bold斜體——Font.Italic下劃線(xiàn)——Font.Underline刪除線(xiàn)——Font.Strikethrough如:LblShow.FontBold=True
LblShow.FontItalic=False
Alignment(對(duì)齊)屬性:此屬性用來(lái)設(shè)置標(biāo)簽上顯示的文本的對(duì)齊方式,對(duì)應(yīng)的設(shè)置為:左對(duì)齊,0;右對(duì)齊,1;居中顯示,2。Visible(可見(jiàn))屬性:用于設(shè)定控件在運(yùn)行時(shí)是否可見(jiàn)。當(dāng)取值為T(mén)rue時(shí),控件可見(jiàn);當(dāng)取值為False時(shí),控件在運(yùn)行時(shí)不可見(jiàn)。Enabled(可用)屬性:用于設(shè)定控件在運(yùn)行時(shí)是否可以使用。當(dāng)取值為T(mén)rue時(shí),控件可以使用;當(dāng)取值為False時(shí),控件在運(yùn)行時(shí)不可使用。2.標(biāo)簽的主要事件Click
事件(鼠標(biāo)單擊)DbClick
事件(鼠標(biāo)雙擊)6.1.2文本框文本框是一個(gè)文本編輯區(qū)域,在設(shè)計(jì)階段或運(yùn)行期間可以在這個(gè)區(qū)域中輸入、編輯和顯示文本。1.文本框的主要屬性Text(文本)屬性該屬性是文本框最重要的屬性,用于顯示文本框中的文本內(nèi)容,可以在界面初始設(shè)置時(shí)指定,也可以在程序中動(dòng)態(tài)修改,程序代碼:文本框?qū)ο竺?Text=“需要顯示的文本內(nèi)容”SelText(選中文本)屬性通常該屬性與文件復(fù)制、剪切等剪貼板(在VB中,剪貼板用Clipboard
表示)操作有關(guān),如要將文本框選中的文本拷貝到剪貼板上,如:該屬性用于設(shè)置或返回當(dāng)前被選中的字符串,如果沒(méi)有選中的字符,那么該屬性的返回值為空字符串即“”。將文本框中選中的內(nèi)容放入剪貼板:Clipboard.SetText
文本框?qū)ο竺Q(chēng).SelText
將剪貼板上的文本粘貼到文本框內(nèi):文本框名稱(chēng).SelText=Clipboard.GetTextSelText(選中文本)屬性注意:沒(méi)有=號(hào)SelStart與SelLength屬性SelStart返回選中文本的第一個(gè)字符的位置。從0開(kāi)始SelLength返回選中文本的字符個(gè)數(shù)。例如:文本框TxtContent中有內(nèi)容如下:請(qǐng)跟我一起學(xué)習(xí)VB教程。假設(shè)選中“一起學(xué)習(xí)”四個(gè)字,那么,SelStart的值為3,SelLength的值為4。MultiLine(多行)屬性該屬性決定了文本框是否可以顯示或輸入多行文本,取值為T(mén)rue、False。只讀屬性,為true時(shí),PasswordChar無(wú)效例如,希望在密碼框中顯示星號(hào),則可在“屬性”窗口中將PasswordChar屬性指定為“*”。這時(shí),無(wú)論用戶(hù)輸入什么字符,文本框中都顯示星號(hào)。PasswordChar(密碼)屬性:該屬性用來(lái)作為口令功能輸入。MaxLength(最大長(zhǎng)度)屬性用于設(shè)置文本框中可以輸入字符個(gè)數(shù)的最大限度,默認(rèn)值為0。文本框控件MaxLength屬性既可以在界面設(shè)置過(guò)程中設(shè)置,也可以在程序代碼中設(shè)置,如:文本框控件名.Maxlength=X(X為阿拉伯?dāng)?shù)字,如10、57,等)ScrollBars(滾動(dòng)條)屬性本屬性可以設(shè)置文本框是否有滾動(dòng)條。當(dāng)值為0,文本框無(wú)滾動(dòng)條;值為1,只有橫向滾動(dòng)條;值為2,只有縱向滾動(dòng)條;值為3,文本框的橫豎滾動(dòng)條都具有。設(shè)置該屬性時(shí),MultiLine
屬性取值必須為T(mén)rue。該屬性用來(lái)指定文本框是否可被編輯。取值False時(shí),文本框中的內(nèi)容可以編輯;取值True時(shí),文本框中的內(nèi)容不能編輯,只能查看或進(jìn)行滾動(dòng)操作。Locked(鎖定)屬性2.文本框的主要方法和事件Change事件GotFocus(獲得焦點(diǎn))、LostFocus(失去焦點(diǎn))事件文本框獲得焦點(diǎn)時(shí)觸發(fā)GotFocus事件,失去焦點(diǎn)時(shí)觸發(fā)LostFocus事件。當(dāng)文本框的Text屬性發(fā)生變化時(shí),觸發(fā)Change事件。SetFocus方法設(shè)置焦點(diǎn),通過(guò)本方法可使光標(biāo)指向指定的文本框。格式為:文本對(duì)象.SetFocus6.2圖形控件6.2.1圖片框(PictureBox)1.圖片框的主要屬性Picture屬性:本屬性用來(lái)返回或設(shè)置控件中要顯示的圖片,可以通過(guò)屬性窗口設(shè)置或在程序運(yùn)行中設(shè)置,例如:圖片對(duì)象.Picture=LoadPicture(“C:\Picts\pen.bmp")AutoSize(大小自適應(yīng))屬性:該屬性決定圖片框控件是否自動(dòng)調(diào)節(jié)大小以顯示圖片的全部?jī)?nèi)容。取值為T(mén)rue/False。2.圖片框的主要方法和事件Print方法:該方法用于在圖片框中輸出文本。Cls(清屏)方法:該方法用于清除圖片框中輸出的文本。不能清除由Picture屬性設(shè)置的圖片。Click事件、DblClick事件:6.2.2圖像框(Image)1.圖像框的主要屬性Picture屬性:與圖片框的Picture類(lèi)似Stretch屬性:該屬性決定了圖像是否可以自動(dòng)調(diào)節(jié)大小以適應(yīng)圖像框的大小,取值為T(mén)rue、False。2.圖片框與圖像框的主要區(qū)別圖片框是“容器”控件,可以容納其它控件,圖像框不可以圖片框可以通過(guò)Print方法顯示文本,而圖像框不能圖像框比圖片框占用內(nèi)存少,顯示速度更快一些。6.3按鈕控件1.按鈕的主要屬性Caption屬性:它的取值就是顯示在按鈕上的文字;用戶(hù)可以給按鈕控件的Caption指定快捷方式。具體做法是:在按鈕Caption屬性中將要作為快捷鍵的字母前加上一個(gè)“&”符號(hào)。使用:ALT+字母取消屬性。當(dāng)本屬性值設(shè)為“True”(真)時(shí),按“Esc”鍵即等同于單擊本按鈕。在一個(gè)窗體中,只允許一個(gè)命令按鈕的Cancel屬性設(shè)置為T(mén)rue。Cancel(取消)屬性Default(默認(rèn))屬性當(dāng)本屬性值設(shè)為“True”(真)時(shí),按回車(chē)鍵即等同于單擊本按鈕。在一個(gè)窗體中,只允許一個(gè)命令按鈕的Default屬性設(shè)置為T(mén)rue。Enabled(可用)屬性:本屬性決定了控件是否可用的問(wèn)題??扇≈礣rue、False。Style(類(lèi)型)與Picture(圖片)屬性按鈕控件有兩種Style取值:0表示標(biāo)準(zhǔn)型(Standard),1表示圖形型(Graphical)。在Style取值為1的情況下,可以設(shè)置按鈕的Picture屬性。vbButtonStandard/vbButtonGraphical2.按鈕的主要事件按鈕最主要的事件為Click事件6.4選擇控件6.4.1單選按鈕和復(fù)選框選項(xiàng)按鈕:用于從一組互斥的選項(xiàng)中,選取其一。復(fù)選框:用于從一組可選項(xiàng)中,同時(shí)選中多個(gè)選項(xiàng)。選中時(shí),Value值為1;未被選中,Value值為0;禁止對(duì)該按鈕進(jìn)行選擇,Value值為2,此時(shí)控件顏色變灰。選中時(shí),Value值為T(mén)rue;未被選中,Value值為False;文本框(Text1)顯示預(yù)設(shè)的字樣;單擊單選按鈕1(Option1),可以將文本框里顯示的字樣改變成黑體字體;單擊單選按鈕2(Option2),可將文本框里顯示的字樣改變成楷體字體。界面如下:例題1、單選按鈕一:PrivateSubOption1_Click()Text1.FontName="黑體"EndSub2、單選按鈕二:PrivateSubOption2_Click()Text1.FontName="楷體_GB2312"EndSub6.5滾動(dòng)條1.滾動(dòng)條的主要屬性Max(最大值)與Min(最小值)屬性滾動(dòng)塊處于最右邊(橫向滾動(dòng)條)或最下邊(豎向滾動(dòng)條)時(shí)返回的值就是最大值;滾動(dòng)塊處于最左邊或最上邊,返回的值最小。Max與Min屬性是創(chuàng)建滾動(dòng)條控件必須指定的屬性,默認(rèn)狀態(tài)下,Max值為32767,Min值為0。該屬性可以在界面設(shè)計(jì)中設(shè)置,也可以在程序運(yùn)行中改變。Value(數(shù)值)屬性Value屬性返回或設(shè)置滾動(dòng)滑塊在當(dāng)前滾動(dòng)條中的位置(取值介于Max和Min之間)。SmallChange(小改變)屬性L(fǎng)argeChange(大改變)屬性當(dāng)用戶(hù)單擊滾動(dòng)條左右邊上的箭頭時(shí),滾動(dòng)條控件Value值的改變量就是SmallChange。單擊滾動(dòng)條中空白處時(shí),引發(fā)Value值按LargeChange設(shè)定的數(shù)值進(jìn)行改變。2.滾動(dòng)條的主要事件Scroll當(dāng)在滾動(dòng)條內(nèi)拖動(dòng)滑塊時(shí)會(huì)觸發(fā)Scroll事件。Change當(dāng)在滾動(dòng)條內(nèi)內(nèi)滑塊位置改變會(huì)觸發(fā)Change事件。區(qū)別:Scroll事件用來(lái)跟蹤滾動(dòng)條中的動(dòng)態(tài)變化,Change事件則用來(lái)得到滾動(dòng)條最后的值。6.6框架框架控件是一個(gè)容器,用于將屏幕上的對(duì)象進(jìn)行分組。不同的對(duì)象可以放在一個(gè)框架中。例題創(chuàng)建如下圖所示界面方案:必須先畫(huà)框架,再設(shè)計(jì)框架里面的控件。6.7計(jì)時(shí)器(Timer)1.計(jì)時(shí)器的主要屬性Enabled屬性活動(dòng)屬性。可取值True或False。用于設(shè)置控件是否可用。Interval
屬性時(shí)間間隔屬性。決定了時(shí)鐘事件之間的間隔,以毫秒為單位,取值范圍為0~65535。2.計(jì)時(shí)器的主要事件Timer事件一個(gè)Timer控件經(jīng)過(guò)預(yù)定的Interval時(shí)間間隔,將激發(fā)一次計(jì)時(shí)器的Timer事件。從而程序就有了自動(dòng)執(zhí)行的效果。1.計(jì)時(shí)器的主要屬性2.計(jì)時(shí)器的主要事件例題設(shè)計(jì)一個(gè)應(yīng)用程序,使得標(biāo)簽?zāi)軌蜃詣?dòng)顯示當(dāng)前時(shí)間。PrivateSubTimer1_Timer()Label2.Caption=TimeEndSub第七章程序控制語(yǔ)句2014循環(huán)結(jié)構(gòu)分支語(yǔ)句回顧If…Then…ElseSelect…Case…EndSelect條件函數(shù)IIFChoose7.3循環(huán)結(jié)構(gòu)在實(shí)際工作中,常遇到一些操作過(guò)程需要重復(fù)進(jìn)行相同處理的問(wèn)題,比如,像計(jì)算1+2+3+……+100,n!等。這些問(wèn)題的解決邏輯上并不復(fù)雜,但如果單純用順序結(jié)構(gòu)來(lái)處理,那將得到一個(gè)非常乏味且冗長(zhǎng)的程序?!纠坑?jì)算1~100所有整數(shù)之和,如果用順序結(jié)構(gòu)來(lái)解決這個(gè)問(wèn)題,我們就會(huì)給出下面的程序:PrivateSubForm_Click()
DimsumasLong,xasinteger
sum=0x=1
sum=sum+xx=x
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44745-2024糧油機(jī)械移動(dòng)式散糧出倉(cāng)機(jī)
- 江蘇省南京市2024-2025學(xué)年高二上學(xué)期期中考試 數(shù)學(xué) 含解析
- 淺談初中歷史作業(yè)錯(cuò)題的歸納和利用方法
- 《廣東省常規(guī)跨徑公路鋼橋安裝標(biāo)準(zhǔn)化指南(2024版)》
- 《新聞學(xué)基礎(chǔ)》題集
- 市小型農(nóng)田水利項(xiàng)目可行性研究報(bào)告
- 2025新譯林版英語(yǔ)七年級(jí)下Unit 3 My hometown單詞表
- 《培養(yǎng)良好書(shū)寫(xiě)習(xí)慣》主題班會(huì)教案3篇
- 部編小學(xué)語(yǔ)文三下二單元(《守株待兔》《陶罐和鐵罐》《鹿角和鹿腿》《池子與河流》)大單元學(xué)習(xí)任務(wù)群教學(xué)設(shè)計(jì)
- 2024年?duì)I林及木竹采伐機(jī)械項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024墻面原位加固修復(fù)技術(shù)規(guī)程
- 友邦培訓(xùn)體系
- 設(shè)備安裝與維修培訓(xùn)課件
- 社會(huì)主義核心價(jià)值觀(guān)秀版
- 食堂消防安全知識(shí)培訓(xùn)內(nèi)容
- 房室傳導(dǎo)阻滯學(xué)習(xí)課件
- 新拌混凝土的性能
- 2023-2024學(xué)年四川省成都市高一上英語(yǔ)期末考試題(含答案和音頻)
- 做頭療計(jì)劃書(shū)
- 《中國(guó)建筑股份有限公司施工企業(yè)質(zhì)量管理辦法》
- 風(fēng)電項(xiàng)目投資計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論