Visual Basic語言程序設(shè)計教程-電子教案-周建麗-6166_第1頁
Visual Basic語言程序設(shè)計教程-電子教案-周建麗-6166_第2頁
Visual Basic語言程序設(shè)計教程-電子教案-周建麗-6166_第3頁
Visual Basic語言程序設(shè)計教程-電子教案-周建麗-6166_第4頁
Visual Basic語言程序設(shè)計教程-電子教案-周建麗-6166_第5頁
已閱讀5頁,還剩241頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

VisualBasic

程序設(shè)計教程第一章VisualBasic的基本知識1.1認識VisualBasic語言1.2窗體1.1.1VisualBasic的特點1、可視化的設(shè)計平臺(***)2、面向?qū)ο蟮脑O(shè)計方法(OOP)3、事件驅(qū)動的編程機制(***)4、結(jié)構(gòu)化的設(shè)計語言5、充分利用Windows資源6、開放的數(shù)據(jù)庫功能與網(wǎng)絡(luò)支持7)完備的help聯(lián)機幫助功能1.1.2設(shè)計VisualBasic應(yīng)用程序的步驟

例:編寫應(yīng)用程序完成功能:當用戶在應(yīng)用程序窗體中用鼠標單擊命令按鈕時,窗體中顯示:“祝你成功!”

。

設(shè)計VisualBasic應(yīng)用程序的步驟:

第一步:創(chuàng)建窗體第二步:編寫程序代碼第三步:運行程序第四步:保存程序第五步:生成EXE文件1.1.3面向?qū)ο蟪绦蛟O(shè)計的概念類對象容器對象屬性方法事件事件過程事件驅(qū)動1.2窗體1.2.1窗體的屬性⑴窗體的基本屬性:Name、height、Width、Left、Top、Enabled、Visible、ForeColor和Image。Name名稱:所建對象的名稱,每創(chuàng)建一個對象,系統(tǒng)都提供一個默認的名稱,可在屬性窗口的Name欄進行修改,名稱是程序中引用對象的標識符,不顯示在窗體上。Height,Width,Top,Left:Height和Width決定了控件對象顯示的大小;Top和Left決定了控件對象在窗體中的位置.窗體的左上角為原點,單位為twip。Enabled:決定控件是否允許操作

True允許用戶進行操作,并對操作作出響應(yīng);False禁止用戶進行操作,呈暗淡色。Visible:決定控件是否可見

True程序運行時控件可見;False程序運行時控件隱含起來看不到,但存在.ForeColor前景色:設(shè)置控件的前景色(正文顏色,若控件有正文,該屬性才有效),其值是一個16進制的常數(shù),在屬性窗口中,提供有調(diào)色板供用戶選擇。BackColor背景色:設(shè)置控件中正文背景的顏色。Caption:決定窗體標題欄顯示的內(nèi)容MaxButton:最大化按鈕(其值為True或False)MinButton:最小化按鈕(其值為True或False)Icon:設(shè)置窗體最小化的圖標ControlBox:設(shè)置窗口右上角的控制菜單(其值為True或False)Picture:設(shè)置窗體中顯示的圖片BorderStyle:設(shè)置窗體的邊框有無,及形式WindowsState:設(shè)置窗體在運行時的顯示狀態(tài)

Normal0(缺省值)正常。

Minimized1最小化(最小化為一個圖標)

Maximized2最大化(擴大到最大尺寸)1.2.2窗體的事件事件功能Initialize初始化所有的數(shù)據(jù)。Load裝載窗體,發(fā)生在Initialize之后。此時窗體是不活動的。Activate發(fā)生在Load之后。激活窗體,等待其他事件發(fā)生,此時才能響應(yīng)用戶在界面上的交互操作。Click在Activate之后,單擊窗體,觸發(fā)Click事件。DbClick在Activate之后,雙擊窗體,觸發(fā)DbClick事件。Resize在Activate之后,如果進行了改變窗體大小的操作,才會觸發(fā)Resize事件。Unload關(guān)閉窗口時才發(fā)生。把窗體從內(nèi)存中刪除(即卸載窗體)。方法格式功能Cls[Object.]Cls清除運行時輸出的文本和圖形。Print[Object.]Print在窗體上輸出文本Show<Form.>Show顯示窗體。Hide<Form.>Hide隱藏窗體。Move[Object.]MoveLeft,Top,Width,Height移動窗體或控件。1.2.3窗體的方法第一章

END2.1基本數(shù)據(jù)類型2.2變量與常量2.3運算符和表達式2.4常用內(nèi)部函數(shù)2.5編碼規(guī)則第二章VisualBasic語言基礎(chǔ)

2.1基本數(shù)據(jù)類型數(shù)據(jù)—描述客觀事物的數(shù)、字符以及所有能輸入到計算機中并被計算機程序加工處理的符號的集合稱為數(shù)據(jù)。

VB的基本數(shù)據(jù):P13

表2.1**VB中有多種數(shù)據(jù)類型,不同的數(shù)據(jù)類型所占的存儲空間不一樣。2.1.1數(shù)值(Numeric)型數(shù)據(jù)VB提供了6種數(shù)值型的數(shù)據(jù),如下:1、整型(Integer)即常規(guī)型數(shù)據(jù)優(yōu)點:運算速度較快,所占內(nèi)存少缺點:可表示數(shù)的范圍相對小一些。表示方式:十進制、八進制、十六進制2、長整型(Long)數(shù)的表示范圍大于整型(232)3、字節(jié)型(Byte)表示無符號的整數(shù),范圍0—255。4、單精度(Single)可表示最多7位有效數(shù)字的數(shù)??捎枚c形式和浮點形式來表示。單精度的定點形式是在該范圍內(nèi)含有小數(shù)的數(shù)。如:

-3.4120.0+1.234.00069

單精度的浮點形式使用科學(xué)計數(shù)法,即以10的整數(shù)次冪表示的數(shù),以“E”來表示底數(shù)10。如:

-3.4E5120.0E-51.234E+125、雙精度數(shù)(Double)最多可表示的15位有效數(shù)字的數(shù)。也有定點和浮點兩種表示法。雙精度的定點形式是在該范圍內(nèi)含有小數(shù)的數(shù),如:-31.123456789129。雙精度的浮點形式使用科學(xué)計數(shù)法,即以10的整數(shù)次冪表示的數(shù),以“D”來表示底數(shù)10。如:-3.412334D52,120.12567D-456、貨幣型(Currency)支持小數(shù)點右面四位和小數(shù)點左面15位,是一個精確的定點數(shù)據(jù)類型。

2.1.2字符型(String)數(shù)據(jù)字符型數(shù)據(jù)—一切可打印的字符和字符串,它是用雙引號括起來的一串字符。如:”abc”,”123”2.1.3布爾(Boolean)型數(shù)據(jù)

False(假)0True(真)非0值與數(shù)值型轉(zhuǎn)換2.1.4日期(Date)型數(shù)據(jù)表示日期和時間,可以表示多種格式的日期和時間,用“#”

符號把表示日期和時間的值括起來。如

#11/18/2000#,#2000-11-18#,#11/18/200010:28:56pm#2.1.5對象(Object)型數(shù)據(jù)可用來表示應(yīng)用程序中或某些其他應(yīng)用程序中的對象。2.1.6可變(Variant)類型數(shù)據(jù)能夠表示所有系統(tǒng)定義的數(shù)據(jù),當把它們賦予Variant型數(shù)據(jù)時,不必在這些數(shù)據(jù)間進行轉(zhuǎn)換,VB會自動完成任何必要的轉(zhuǎn)換。例如:

SomeValue="18"SomeValue=SomeValue-15SomeValue="U"&SomeValue目錄2.2常量與變量2.2.1VisualBasic的標識符標識符的組成:必須以字母或漢字開頭,只能包含字母、漢字、數(shù)字和下劃線;字符的個數(shù)不能超過255個,控件和窗體等的名字不能超過40個字符;不能和VB的關(guān)鍵字同名;注:VB不區(qū)分大小寫;為了增加程序的可讀性,可以在符號名前加上表明數(shù)據(jù)類型的前綴,如str,int,dtm等。2.2.2常量常量—在程序運行過程中始終保持不變的常數(shù)、字符串等。在VB中,有兩種形式的常量:一般常量和符號常量1、一般常量根據(jù)使用的數(shù)據(jù)類型,常量分為:字符串常量、數(shù)值常量、布爾常量、日期常量2、符號常量符號常量分為兩種:系統(tǒng)內(nèi)部定義和用戶定義的符號常量(1)系統(tǒng)內(nèi)部定義的常量(2)用戶定義的符號常量用戶定義常量使用Const語句來給常量分配名字、值和類型。聲明常量的語法為:[Public|Private]Const〈常量名〉[As〈數(shù)據(jù)類型〉]=〈表達式〉…注意:<常量名>的命名規(guī)則遵循符號的命名規(guī)則。<表達式>由數(shù)值常量、字符串常量等常量及運算符組成,也可以包含前面定義的常量,但不能使用函數(shù)調(diào)用。1、變量的聲明聲明語句的語法:{Dim|Private|Static|Public}<變量名>[As<類型>][,<變量名2>[As<類型2>]]…說明:Public語句聲明公有的模塊級變量,Private或Dim語句聲明私有的模塊級變量,Dim或Private或Static語句聲明過程級局部變量。2.2.3變量針對字符串變量而言:1、變長字符型變量字符串的長度是不固定的。2、定長字符型變量字符串的長度是不變的。如:

DimsnameAsString*8sname="janenjggnj"

相當于(sname="janenjgg")2、強制顯示聲明變量語句

OptionExplicit(可有效降低錯誤率)方法:1)在類模塊、窗體模塊或標準模塊的聲明段中加入語句OptionExplicit2)工具選項編輯器選項卡要求變量聲明2.3運算符和表達式運算—對數(shù)據(jù)進行加工的過程運算符——描述各種不同運算的符號稱為運算符。操作數(shù)—參與運算的數(shù)據(jù)表達式—表示某個規(guī)則,它由運算符和配對的圓括號將常量、變量、函數(shù)、對象等操作數(shù)以合理的形式組合而成。2.3.1算術(shù)運算符與表達式由算術(shù)運算符、數(shù)值型常量、變量、函數(shù)和括號組成,其運算結(jié)果為一數(shù)值。格式:<數(shù)值1><算術(shù)運算符><數(shù)值2>[<算術(shù)運算符2><數(shù)值3>]1、算術(shù)運算符

^*/\Mod+-2、書寫規(guī)則3、優(yōu)先級^-(負數(shù))(*、/)\Mod(+、-)2.3.2字符串運算符與表達式字符串表達式的格式:<字符串1>&<字符串2>[&<字符串3>]例如:"Abc"&"999"="Abc999"123&"999"="123999"****“+”也能將兩個字符串連接成一個字符串,但“&”能自動將非字符串類型的數(shù)據(jù)轉(zhuǎn)換成字符串后再進行連接,而“+”則不能。

2.3.3日期運算符與表達式日期運算符:“+”,“-”日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),它們之間的運算情況有如下3種:(1)兩個日期相減,結(jié)果是一個數(shù)值型數(shù)據(jù)(兩個日期相差的天數(shù))如:#12/19/1999#-#11/16/1999#

結(jié)果為:33(2)一個表示天數(shù)的數(shù)值型數(shù)據(jù)可以加到日期數(shù)據(jù)中,結(jié)果仍然是一個日期型數(shù)據(jù)。

#11/16/1999#+33結(jié)果為:#1999-12-19#(3)一個表示天數(shù)的數(shù)值型數(shù)據(jù)可以從日期型數(shù)據(jù)中減掉,其結(jié)果仍然為一個日期型數(shù)據(jù)。

#12/19/1999#-33結(jié)果為:#1999-11-16#目錄2.4常用內(nèi)部函數(shù)分為:數(shù)學(xué)函數(shù)隨機函數(shù)字符串函數(shù)日期時間函數(shù)轉(zhuǎn)換函數(shù)

函數(shù)名返回值類型功能舉例返回值A(chǔ)bs(N)同N的類型求N的絕對值A(chǔ)bs(-4.8)4.8Sgn(N)IntegerN為正、零、負分別返回1、0、-1Sng(4)Sng(0)Sng(-4)10-1Sqr(N)Double求N的算術(shù)平方根,N>=0Sqr(16)4Exp(N)Double求自然常數(shù)e的N次冪Exp(2)7.3890……Log(N)Double求N的自然對數(shù)值,N>0Log(2)0.6931……Int(N)Integer求不大于N的最大整數(shù)Int(4.8)Int(-4.8)4-5Fix(N)Integer求N的整數(shù)部分Fix(4.8)Fix(-4.8)4-4Rnd[(N)]Single求[0,1)之間的一個隨機數(shù),N作為產(chǎn)生隨機數(shù)的種子RndRnd(-1)Rnd(0)Rnd(1)序列中下一隨機數(shù)得相同的隨機數(shù)最近生成的隨機數(shù)序列中下一隨機數(shù)2.4.1數(shù)學(xué)運算函數(shù)(表2-5)2.4.2字符串函數(shù)(表2-6)函數(shù)名返回值類型功能舉例返回值A(chǔ)sc(C)Integer求字符串C首字母的ASCII碼Asc(“ABC”)65Chr(N)String求以數(shù)值N為ASCII碼的字符Chr(65)"A"Str(N)String將數(shù)值N轉(zhuǎn)換為數(shù)字字符串Str(-12345)"-12345"Val(C)Double將數(shù)字字符串C轉(zhuǎn)換為數(shù)值Val("1234abc")1234Len(C)Long求字符串C的字符數(shù)Len("Abab字符串")7LenB(C)Long求字符串C占用的字節(jié)數(shù)LenB("Abab字符串")14Ucase(C)String將小寫字母轉(zhuǎn)換為大寫字母UCase("abcABC")"ABCABC"Lcase(C)String將大寫字母轉(zhuǎn)換為小寫字母Lcase("abcABC")"abcabc"Space(N)String產(chǎn)生N個空格Len(Space(6))6String(N,C)String產(chǎn)生N個由C的第一個字符組成的字符串,C可以是ASCII碼String(6,"ABC")String(6,65)"AAAAAA""AAAAAA"Left(C,N)String取C左邊N個字符Left("ABCDEF",3)"ABC"Right(C,N)String取C右為N個字符Right("ABCDEF",3)"DEF"Mid(C,N1[,N2])String從C的第N1開始取N2個字符Mid("ABCDEF",2,3)"BCD"Ltrim(C)String去掉C左邊的空格Ltrim("ABCD")"ABCD"Rtrim(C)String去掉C右邊的空格Rtrim("ABCD")"ABCD"Trim(C)String去掉C左、右兩邊的空格Trim("ABCD")"ABCD"Split(C[,D][,N][,M]數(shù)組將C按分隔符分成字符串數(shù)組中的各個元素A=Split("123,ab,c")A(0)="123"A(1)="ab"A(2)="c"2.4.3日期時間函數(shù)(表2-7)函數(shù)名返回值類型功能舉例返回值DateDate返回系統(tǒng)日期Date2007-3-12TimeDate返回系統(tǒng)時間Time15:51:51NowDate返回系統(tǒng)日期和時間Now2007-3-1215:52:43Year(D)Integer返回D的年份Year(Date)2007Month(D)Integer返回D的月份Month(Date)3Day(D)Integer返回D的日數(shù)Day(Date)12WeekDay(D)Integer返回D是星期幾WeekDay(Date)2(即星期一)Hour(T)Integer返回T的小時數(shù)Hour(Time)15Minute(T)Integer返回T的分鐘數(shù)Minute(Time)52Second(T)Integer返回T的秒數(shù)Second(Time)43*2.4.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)(表2-8)函數(shù)名返回值類型功能舉例返回值CBool(x)Boolen把x轉(zhuǎn)換為邏輯型數(shù)據(jù)CBool(31)TrueCByte(x)Byte把x轉(zhuǎn)換為字節(jié)型數(shù)據(jù)CByte(31.56)32CInt(x)Integer把x轉(zhuǎn)換整型數(shù),小數(shù)部分四舍五入CInt(1234.57)12345CLng(x)Long把x轉(zhuǎn)換長整型數(shù),小數(shù)部分四舍五入CLng(325.3)325CSng(x)Single把x舍入為單精度數(shù)CSng(56.5421117)56.54211CDbl(x)Double把x轉(zhuǎn)換為雙精度數(shù)CDbl(1234.5678)1234.5678CCur(x)Currency把x轉(zhuǎn)換為貨幣型數(shù),最多保留4位小數(shù)CCur(876.43216)867.4322CVar(x)Variant把x轉(zhuǎn)換為變體型數(shù)CVar(99&"00")"9900"CDate(x)Date把x轉(zhuǎn)換為日期型數(shù)據(jù)CDate(30.5)1900-1-2912:00:00CStr(x)String把x轉(zhuǎn)換為字符串型數(shù)據(jù)CDate(-30.25)1899-11-306:00:00Hex(x)String把十進制數(shù)x轉(zhuǎn)換為十六進制數(shù)字串Hex(31)"1F"Oct(x)String把十進制數(shù)x轉(zhuǎn)換為八進制數(shù)字串Oct(20)"24"*2.4.5格式輸出函數(shù)用格式輸出函數(shù)Format()可以使數(shù)值、日期或字符型數(shù)據(jù)按指定的格式輸出。語法格式:

Format(<表達式>,<格式字符串>)符號作用數(shù)值表達式格式化字符串顯示結(jié)果0實際數(shù)字小于格式符號位數(shù)時,數(shù)字前后加01234.5671234.567"00000.0000""000.0"01234.56701234.6#實際數(shù)字小于格式符號位數(shù)時,數(shù)字前后不加01234.5671234.567"#####.####""###.#"1234.5671234.6.加小數(shù)點12345"00000.00"12345.00,千分位1234.567"##,##0.00"1,234.57%數(shù)值乘以100,加百分號1234.567"####.##%"123456.7%$在數(shù)字前強加$1234.567"$###.##"$1234.57+在數(shù)字前強加+-124.567"+###.##"+-124.57-在數(shù)字前強加-1234.567"-###.##"-1234.57E+用指數(shù)表示(強制顯示+號)1234.567"0.00E+00"1.23E+03E-用指數(shù)表示1234.567"0.00E-00"1.23E03數(shù)值格式字符串:符號作用符號作用d顯示日期(1~31),個位前不加0yy顯示兩位年份(00~99)dd顯示日期(01~31),個位前加0yyyy顯示四位年份(0100~9999)ddd顯示星期縮寫(Sun~Sat)q顯示季度數(shù)(1~4)dddd顯示星期全名(Sunday~Saturday)h顯示小時(0~23),個位前不加0ddddd顯示完整日期:日、月、年(mm/dd/yy)hh顯示小時(00~23),個位前加0w星期為數(shù)字(1~7,1是星期日)m在h后顯示分(0~59),個位前不加0ww一年中的星期數(shù)(1~53)mm在h后顯示分(00~59),個位前加0m顯示月份(1~12),個位前不加0s顯示秒(0~59),個位前不加0mm顯示月份(1~12),個位前加0ss顯示秒(00~59),個位前加0mmm顯示月份縮寫(Jan~Dec)ttttt顯示完整的時間:時、分、秒(hh:mm:ss)mmmm顯示月份全名(January~December)AM/PM顯示12小時時鐘,午前AM午后PMy顯示一年中的天數(shù)(1~366)A/P顯示12小時時鐘,午前A午后P日期格式字符串:符號作用字符串表達式格式化字符串顯示結(jié)果<強迫字母以小寫顯示"Hello""<@@@@@""hello">強迫字母以大寫顯示"Hello"">@@@@@""HELLO"@實際字符位數(shù)小于符號位數(shù),字符前加空格"Hello""@@@@@@@@""Hello"&實際字符位數(shù)大于符號位數(shù),字符前不加空格"Hello""&&&&&&&&""Hello"!與@配合使用,空格加在字符后"Hello""!@@@@@@@@""Hello"字符格式字符串:目錄2.5編寫規(guī)則2.5.1語句及語法2.5.2代碼書寫規(guī)則第二章

END第三章順序結(jié)構(gòu)程序設(shè)計數(shù)據(jù)輸入基本控制語句常用控件數(shù)據(jù)輸出程序調(diào)試3.1數(shù)據(jù)輸出的基本辦法3.1.1Print方法使用Print方法可以在窗體或圖片框上輸出文本字符串或表達式的值。語法格式:[<對象名稱>.]Print[<輸出項列表>][{,|;}]說明:<對象名稱>可以是窗體,圖片框或打印機.缺省是窗體.<表達式列表>是一個或多個表達式,可以是數(shù)值表達式或字符串表達式.輸出多個表達式時,各表達式之間的分隔符可以用:逗號,或分號;.在語句行末尾使用分隔符的情況:

使用分號則會?使用逗號則會?Print具有計算和輸出的雙重功能.對于表達式總是先計算后輸出.

如:Print3+3例:使用Print方法在窗體中直接輸出字符串或數(shù)值表達式的值.PrivateSubForm_Click()dimaasintegera=123Print123PrintaPrint"VisualBasic"PrintPrinta*2Print123;a,"VisualBasic"EndSub2、與PRINT方法有關(guān)的函數(shù)(1)Tab(n)函數(shù)特點:1)當TAB(x)與輸出項之間以分號分隔時輸出項按x指定的位置顯示。2)TAB(x)與輸出項之間是逗號分隔時,該TAB(x)無效,僅逗號起作用。3)當打印的當前位置超過x是,輸出項在下一行指定的x位置輸出。4)如果指定位置x大于行寬,則先進行xMOD行寬的計算,再用余數(shù)作為指定位置顯示。例:PrintTAB(6);3PrintTAB(6),3Print"HELLO,CHINA"

;TAB(6);3PrintTAB(86);3(2)Spc函數(shù)

Spc函數(shù)輸出n個空格,其格式為:Spc(n)例:

PRINTTAB(6);3;Spc(20);43、使用位置屬性精確地把文本輸出到窗體、圖片框或打印頁上。

CurrentX和CurrentY.

例:P423.1PrivateSubForm_Activate()

Dimaasstring,wasinteger,hasintegerMe.FontSize=30a="VisualBasic"w=Me.TextWidth(a)h=Me.TextHeight(a)Me.CurrentX=(Me.ScaleWidth-w)/2Me.CurrentY=(Me.ScaleHeight-h)/2PrintaEndSub3.1.2信息對話框輸出信息

MsgBox函數(shù)在對話框中輸出信息,等待用戶單擊按鈕,并返回一個整數(shù)以確認用戶單擊了哪個按鈕(P44)。

格式為:變量=MsgBox(<輸出的信息內(nèi)容>[,<對話框類型>[,<對話框標題>])

說明:P43〈信息內(nèi)容〉指定在對話框中出現(xiàn)的文本〈對話框類型〉指定對話框中出現(xiàn)的按鈕和圖標,一般有3個內(nèi)容?!磳υ捒驑祟}〉指定對話框中出現(xiàn)的標題Msgbox()返回的值指明了在對話框中選擇了哪

一個按鈕。第二個參數(shù)的值可以是數(shù)值,也可以是符號常量如果省略了某些選項,必須加入相應(yīng)的逗號分隔符。若不需要返回值,則可以使用MsgBox的命令形式。參數(shù)類型參數(shù)值符號常量含義顯示的按鈕0vbOKOnly顯示“確定”按鈕1vbOKCancel顯示“確定”和“取消”按鈕2vbAbortRetryIgnore顯示“終止”、“重試”和“忽略”按鈕3vbYesNoCancel顯示“是”、“否”和“取消”按鈕4vbYesNo顯示“是”和“否”按鈕5vbRetryCancel顯示“重試”和“取消”按鈕顯示的圖標16vbCritical顯示停止(X)圖標32vbQuestion顯示問號(?)圖標48vbExclamation顯示感嘆號(!)圖標64vbInformation顯示消息(I)圖標默認按鈕0vbDefaultButton1第一個按鈕為默認按鈕256vbDefaultButton2第二個按鈕為默認按鈕512vbDefaultButton3第三個按鈕為默認按鈕第二個參數(shù)包含的內(nèi)容:3.2數(shù)據(jù)輸入的基本方法3.2.1賦值語句LET

賦值語句可以將指定的值賦給某個內(nèi)存變量或?qū)ο蟮哪硞€屬性變量。格式:

[LET]<變量名>=<表達式>3.2.2用InputBox函數(shù)輸入數(shù)據(jù)InputBox函數(shù)顯示一個能接受用戶輸入的對話框,,并返回用戶在對話框中輸入的信息。格式為:變量=InputBox(<信息內(nèi)容>[,<對話框標題>][,<默認內(nèi)容>][,XPOS][,YPOS])例:h=InputBox("請輸入你的姓名","輸入","張三")說明〈信息內(nèi)容〉指定在對話框中出現(xiàn)的文本〈對話框標題〉指定對話框中出現(xiàn)的標題〈默認內(nèi)容〉可以指定輸入框中顯示的默認文本?!碭POS〉可以指定輸入框與屏幕左邊的距離〈YPOS〉可以指定輸入框與屏幕上邊的距離用戶單擊“確定”:返回文本框內(nèi)容到變量中用戶單擊“取消”:返回一個零長度的字符串。

3.3常用基本語句3.3.1注釋與暫停1、注釋語句格式:

Rem<注釋內(nèi)容>或

′<注釋內(nèi)容>3.3.2加載對象語句Load

在程序運行的過程中,有時需要添加新的窗體或為控件數(shù)組增加新的元素,這類操作可以通過加載對象語句Load來完成。

語法格式:Load對象名

功能:把對象名代表的對象,如窗體、控件數(shù)組元素等加載到內(nèi)存中,以供程序使用。

說明:使用Load語句可以加載窗體,但不顯示窗體。當VB加載窗體對象時,先把窗體屬性設(shè)置為初始值,再執(zhí)行Load事件過程。例如:

LoadForm2 Form2.Visible=True3.3.3卸載對象Unload語句當要結(jié)束應(yīng)用程序而從內(nèi)存當中卸載窗體或要從內(nèi)存當中卸載某些控件時,可以使用Unload語句。其語法格式為:

Unload對象名說明:“對象名”是要卸載的窗體對象或控件的名稱3.3.4結(jié)束語句(End)End語句強制終止代碼的執(zhí)行。End語句提供了一種強迫終止程序的方法VisualBasic程序正常結(jié)束應(yīng)該卸載所有的窗體。與End不同,Stop不會關(guān)閉任何文件,或清除變量。

3.3.5暫停語句(Stop)Stop語句用來暫停語句的執(zhí)行。Stop語句主要作用是把解釋程序設(shè)置為中斷模式,以便對程序進行檢查和調(diào)試。3.4常用標準控件及應(yīng)用VisualBasic應(yīng)用程序的用戶界面多數(shù)情況下是在窗體上添加適當?shù)目丶瓿傻摹A私庖恍┳畛S玫目丶涂丶幕緦傩裕缑畎粹o、標簽、文本框等,就能完成一些簡單程序的界面設(shè)計。學(xué)習這些控件就是學(xué)習它們的屬性,事件,方法。3.4.1控件的基本屬性Name屬性Caption屬性Enabled屬性Visible屬性Height屬性BackColor和ForeColor屬性Font屬性3.4.2焦點與Tab鍵序

1.焦點焦點是用于描述對象接收鼠標或鍵盤輸入的能力。我們稱當前被操作的對象獲得了焦點(Focus)。焦點對象才有接收鼠標或鍵盤輸入的能力。當對象具有焦點時,才能接收用戶的輸入。要將焦點賦給對象(窗體或控件),有以下幾種方法:(1)用鼠標選定對象。(2)按快捷鍵選定對象。(3)按Tab鍵或Shift+Tab鍵在當前窗體的各對象之間切換焦點。(4)在代碼中用SetFocus方法來設(shè)置焦點。2.Tab鍵序

Tab鍵序是指用戶按Tab鍵時,焦點在控件間移動的順序。通過改變控件的TabIndex屬性值,可以改變默認的按Tab鍵移動焦點的順序。注意:當控件接收焦點時,會發(fā)生GotFocus事件;當控件失去焦點時,會發(fā)生LostFocus事件??梢允褂肧etFocus方法在代碼中設(shè)置焦點。TabIndex屬性和TabStop屬性:TabIndex屬性決定控件接收焦點時的順序TabStop屬性決定焦點是否能夠停在該控件上3.4.3命令按鈕命令按鈕(CommandButton)當用戶用鼠標單擊命令按鈕,或者選中命令按鈕后按回車鍵時,就會觸發(fā)該命令按鈕相應(yīng)的事件過程。

1.常用屬性(Name,Enabled,Visible)(1)Default屬性:對應(yīng)“Enter”

(2)Cancel屬性:對應(yīng)“Esc”(3)Style屬性:設(shè)置命令按鈕的外觀,默認值為0表示以標準的Windows按鈕方式顯示;其值為1時,表示以圖形按鈕顯示,此時可用Picture,DownPicture和DisabledPicture屬性來分別指定按鈕在正常、被按下和不可用3種狀態(tài)下的圖片。(4)Caption屬性

2.常用事件和方法事件:命令按鈕最常用的事件是Click(單擊)事件,但不支持DblClick(雙擊)事件。方法:命令按鈕常用的方法是SetFocus方法。3.4.4標簽控件標簽(Label)主要用來顯示比較固定的提示性信息,常作為提示或輸出信息的控件,其默認名稱(Name)為Label1,Label2,……。1.常用的屬性(1)Alignment屬性:設(shè)置標簽中文本的對齊方式;(2)AutoSize屬性:確定標簽的大小是否根據(jù)標簽的顯示的內(nèi)容自動調(diào)整大小;(3)BorderStyle屬性:設(shè)置標簽的邊框,可以取兩種值;(4)BackStyle屬性:設(shè)置標簽的背景模式;(5)Caption屬性:標簽內(nèi)顯示內(nèi)容;(6)Wordwrap屬性:改變標簽垂直方向的大小。

2.常用事件和方法事件:標簽可觸發(fā)Click,DblClick等事件。方法:標簽支持Move方法,用于實現(xiàn)控件的移動。3.4.5“文本框”控件(TextBox)1、常用屬性文本框沒有Caption屬性

(1)Maxlength屬性(2)Multiline屬性(3)PasswordChar屬性

注意:只有在Multiline屬性被設(shè)置為False的前提下,PasswordChar屬性才能起作用。(4)ScrollBars屬性

注意:使文本框出現(xiàn)滾動條的前提是Multiline屬性必須設(shè)置為True。(5)SelStart屬性、Sellength屬性和SelText屬性(6)Text屬性(7)Locked屬性2.常用事件和方法事件:Click,DblClick,Change(內(nèi)容改變)、

GotFocus(獲得焦點)、LostFocus(失去焦點)方法:SetFocus方法和Move方法。例:P583-93.4.6滾動條1.滾動條的用途滾動條控件的作用是為那些不能自動支持滾動的應(yīng)用程序和控件提供滾動功能。2.常用屬性⑴Min、Max屬性⑵Value屬性⑶SmallChange(最小變動值)屬性⑷LargeChange(最大變動值)屬性3.常用事件⑴Scroll事件:當用鼠標拖動滾動塊時,即觸發(fā)Scroll事件。⑵Change事件:當改變Value屬性值時,即觸發(fā)Change事件。例3-11:設(shè)計一個調(diào)色板應(yīng)用程序,如圖所示。3.4.7PictureBox(圖形框)圖形框控件的主要作用是為用戶顯示圖片,也可以作為其他控件的容器。屬性:

1.Picture屬性圖片框?qū)ο竺?Picture=LoadPicture(“圖形文件名”)

2.Autosize屬性:設(shè)置為True時,圖形框能自動調(diào)整大小與顯示的圖片匹配。

方法:

1.Print:圖片框?qū)ο竺?Print2.Cls:圖片框?qū)ο竺?Cls第三章

END第四章選擇結(jié)構(gòu)程序設(shè)計4.1選擇結(jié)構(gòu)的概念4.2條件表達式4.3選擇結(jié)構(gòu)程序設(shè)計4.4配合選擇功能的控件4.5選擇程序設(shè)計綜合舉例4.1選擇結(jié)構(gòu)程序設(shè)計概念特點:根據(jù)給定的條件為成立與否,而決定從各種不同的解決方案中選擇某一個方案來執(zhí)行。條件語句的功能是:根據(jù)條件表達式的值有選擇地執(zhí)行一組語句。語句序列2條件語句序列1否是4.2關(guān)系表達式和邏輯表達式

4.2.1關(guān)系運算符和關(guān)系表達式關(guān)系運算符主要是對比較來說的。關(guān)系表達式是由關(guān)系運算符把兩個算術(shù)表達式連接起來的式子。一般形式:

<表達式><關(guān)系運算符><表達式>VB提供的關(guān)系運算符有:

=(等于)>(大于)

<(小于)

<>(不等于)

>=(大于或等于)

<=(小于或等于)數(shù)值型數(shù)據(jù)按其大小進行比較;日期型數(shù)據(jù)看成“yyyymmdd”的8位整數(shù),按數(shù)值大小進行比較;字符型數(shù)據(jù)按其ASCII碼值進行比較。比較字符串時,從第一個字符開始比較。常見字符值的大?。?空格"<"數(shù)字"<"大寫字母"<"小寫字母"<"任何漢字"不要對單精度或雙精度的數(shù)進行“

=”

比較。4.2.2邏輯運算符和邏輯表達式一個簡單的條件可用關(guān)系運算符表示,一個復(fù)雜的條件只能用邏輯運算符構(gòu)成邏輯表達式來判斷;如:10>Y>0(數(shù)學(xué)表達式)

?(VB表達式)

VB提供的邏輯運算符有:邏輯運算符含義例

AND邏輯與A>BANDB>COR邏輯或A>BORB>CNOT邏輯非NOTA>BXOR邏輯異或A>BXORB>C(NOTOR,XOR)AND邏輯運算符之間的優(yōu)先級為:4.2.3運算符的優(yōu)先順序一個邏輯表達式內(nèi)可能包括邏輯運算符、關(guān)系運算符和算術(shù)運算符,它們有一個優(yōu)先順序的問題,它們的優(yōu)先順序如下:算術(shù)運算關(guān)系運算邏輯運算低高字符串運算4.3選擇結(jié)構(gòu)程序設(shè)計4.3.1條件語句1)If…Then語句⑴單行結(jié)構(gòu)格式If條件表達式Then語句⑵塊結(jié)構(gòu)格式If條件表達式Then

語句塊EndIf2)If…Then…Else語句If…Then…Else語句也有兩種語法格式。⑴單行結(jié)構(gòu)格式If條件表達式Then語句1Else語句2⑵塊結(jié)構(gòu)格式If條件表達式Then

語句塊1Else

語句塊2EndIf3)條件語句嵌套及多分支條件語句(1)If語句的嵌套(2)帶ElseIf的If語句的嵌套If條件表達式1Then

語句塊1ElseIf條件表達式2Then

語句塊2ElseIf條件表達式3Then

語句塊3......ElseIf條件表達式n-1Then

語句塊n-1[Else語句塊n]EndIf4.3.2情況選擇語句SelectCaseSelectCase測試表達式

Case取值列表1

語句塊1[Case取值列表2

語句塊2]……[CaseElse

語句塊n]EndSelect說明:<測試表達式>是必要參數(shù),是任何數(shù)值表達式或字符串表達式在Case子句中,<表達式>為必要參數(shù),用來測試其中是否有值與<測試條件>相匹配。其形式有:

表達式:Case3

表達式to表達式:指定一個范圍

Case2to9Case"a"to"f"

Is關(guān)系運算表達式:CaseIs<100<語句列>可選參數(shù),是一條或多條語句CaseElse子句用于指明其他語句系列,當測試條件和所有的Case子句<表達式表>中的值都不匹配時,則會執(zhí)行這些語句。4.3.3IIf函數(shù)[格式]IIf(條件表達式,“真”的返回值,“假”的返回值)[功能]函數(shù)分別返回“條件表達式”為真和為假時的取值?!罢娣祷刂怠焙汀凹俜祷刂怠笨梢允侨魏伪磉_式,4.4提供簡單選擇的控件

4.4.1使用“框架”控件(Frame)“框架”控件也是一種容器控件,在框架控件中的控件可以隨著框架一起移動??蚣芸丶某S脤傩杂校篘ame,Caption,F(xiàn)ont等。注意:框架控件另一重要作用是:用來對選項按鈕進行分組。4.4.2選項按鈕(OptionButton)一、使用選項按鈕組(一般用框架(Frame)控件來組織一個選項組)1、常用屬性

caption,alignmentvalue:控件的選擇狀態(tài)(True,False)

style:使用圖形選項按鈕

2、事件

click4.4.3復(fù)選框(CheckBox)選項按鈕組屬于多項中選擇一項的選擇,若許選擇多項的情況,則可以采用多哥復(fù)選框控件。

1、常用屬性

caption,alignmentvalue:決定復(fù)選框的狀態(tài)

0—假(沒選中)

1—真(選中)

2—暗(缺省)

style2、事件

click

4.4.4計時控件器(Timer)計時器控件(Timer)按指定時間間隔重復(fù)的發(fā)生它的timer事件。主要屬性:

Enable:定時器是否開始工作的設(shè)置

Interval:設(shè)置定時器觸發(fā)的周期,以毫秒計算,取值范圍為:0—64767

唯一事件:

Timer例:設(shè)計一個電子時鐘。例:設(shè)計一個跑秒表。例:屏幕滾動字幕第四章

END第五章循環(huán)結(jié)構(gòu)程序設(shè)計5.1循環(huán)概念5.2循環(huán)結(jié)構(gòu)及循環(huán)程序5.3循環(huán)程序設(shè)計舉例5.1循環(huán)結(jié)構(gòu)程序設(shè)計的概念

VB提供的設(shè)計循環(huán)結(jié)構(gòu)的語句有:Do…LoopWhile…WendFor…NextFor…EachNext

條件成立需重復(fù)執(zhí)行的語句是否執(zhí)行后續(xù)語句5.2循環(huán)結(jié)構(gòu)及循環(huán)程序5.2.1設(shè)計循環(huán)結(jié)構(gòu)的基本原理構(gòu)造循環(huán)結(jié)構(gòu)的三個要素(1)構(gòu)造循環(huán)體:需要重復(fù)執(zhí)行的語句(2)設(shè)置循環(huán)出口:停下重復(fù)工作的條件人為約定條件方式計數(shù)方式(3)初始化5.2.2用循環(huán)語句寫循環(huán)程序1)WHILE循環(huán)結(jié)構(gòu)格式:WHILE<條件>

循環(huán)體

WEND

條件成立循環(huán)體是否執(zhí)行后續(xù)語句執(zhí)行過程:(1)對“條件”進行求值,判斷條件是“真”還是“假”;(2)如果“條件”為真,則執(zhí)行循環(huán)體,執(zhí)行完之后再轉(zhuǎn)到(1)執(zhí)行;如果“條件”為“假”,則轉(zhuǎn)到(3);(3)結(jié)束循環(huán)體的執(zhí)行,跳到WEND的下一個語句執(zhí)行。2)Do...Loop共有三大類語法格式下面分別介紹之:無條件循環(huán)結(jié)構(gòu)前測型循環(huán)結(jié)構(gòu)后測型循環(huán)結(jié)構(gòu)有五種語法形式:

(1)無條件循環(huán)型語法格式:Do

循環(huán)體Loop退出循環(huán)語句:EXITDO循環(huán)體(2)當型Do…Loop循環(huán)DoWhile<條件>[<語句列1>][ExitDo][<語句列2>]LoopDoUntil<條件>[<語句列1>][ExitDo][<語句列2>]Loop(3)直到型Do…Loop循環(huán)Do[<語句列1>][ExitDo][<語句列2>]LoopWhile<條件>Do[<語句列1>][ExitDo][<語句列2>]Loopuntil<條件>3)For…Next語句當已知循環(huán)次數(shù)時,可用For…Next循環(huán)。For循環(huán)使用一個循環(huán)變量,每重復(fù)一次循環(huán)后,循環(huán)變量會自動增加或減少。流程圖:循環(huán)變量沒超過終值循環(huán)體是否執(zhí)行后續(xù)語句循環(huán)變量=初值循環(huán)變量=循環(huán)變量+步長格式為:

For<循環(huán)變量>=<初值>To<終值>[Step<步長>][<語句列1>][ExitFor][<語句列2>]Next[<循環(huán)變量>]5.3循環(huán)程序設(shè)計舉例:

1、計算1+2+3+……+100的結(jié)果。2、判斷輸入的數(shù)是否是素數(shù)。方法:

判斷一個自然數(shù)n(n3)是否素數(shù),只要依次用2-n作除數(shù)去除n,若n不能被其中任何一個數(shù)整除,則n即為素數(shù).5.4列表框與組合框控件5.4.1列表框(ListBox)1)常用屬性(1)Name屬性(2)List屬性該屬性是一個字符型數(shù)組,存放列表框或組合框的選項。List數(shù)組的下標從0開始。(3)ListIndex該屬性只能在代碼中設(shè)置或引用。ListIndex的值表示程序運行時被選定選項的序號。如果未選中任何選項,則ListIndex的值為-1。(4)ListCount該屬性只能在代碼中設(shè)置或引用。其值表示列表框或組合框中項目的數(shù)量。(5)Sorted該屬性只能在屬性窗口設(shè)置。其決定在程序運行期間列表框或組合框的選項是否按字母順序排列顯示。(7)Text屬性只能在代碼中設(shè)置或引用。其表示被選定的文本內(nèi)容,該屬性不能被賦值,只能使用。如:

Label1.caption=List1.text Combo1.additemCombo1.text(6)Selected

該屬性只能在代碼中設(shè)置或引用,是一個邏輯數(shù)組,其元素對應(yīng)列表框中相應(yīng)的項,表示對應(yīng)的項在程序運行過程中是否被選中。如果List1.Selected(0)=True,表示第一項被選中。2)事件列表框:Click事件和DblClick事件3)方法(1)AddItem:把一個選項加入列表框或組合框。格式如下:

對象.AddItemitem[,index](2)RemoveItem:

從列表框或組合框中刪除一個選項。格式如下:

對象.RemoveItemindex

(3)Clear方法:可以清除列表框或組合框的所有內(nèi)容。

格式如下:

對象.Clear

說明:

對象:可以是列表框或組合框;4)列表框表項的輸出輸出列表框中的表項的常用方法:⑴用鼠標單擊列表框內(nèi)某一表項,則該表項值存放在Text屬性中。⑵指定索引號以獲取表項的內(nèi)容。5.4.2組合框的常用屬性(1)Style屬性決定組合框的類型和行為,它的值為0,1或2102下拉式組合框簡單組合框。下拉式列表框(2)事件組合框:Click事件,keypress(style=0,1)(只有簡單組合框才能接收DblClick事件)第五章

END第六章數(shù)組6.1數(shù)組的概念6.2數(shù)組的聲明和應(yīng)用6.3動態(tài)數(shù)組及聲明6.4ForEach……Next循環(huán)語句6.5控件數(shù)組6.1數(shù)組的概念6.1.1數(shù)組與數(shù)組元素6.1.2數(shù)組的下標與維數(shù)6.1.1數(shù)組與數(shù)組元素1、數(shù)組:如果某些數(shù)據(jù)是有內(nèi)在聯(lián)系的,是具有相同屬性的(如10個學(xué)生的成績),可以把這批數(shù)據(jù)看作一個有機的整體,稱為數(shù)組(array)用序號或下標來區(qū)分各個數(shù)據(jù)。

概念:是用一個統(tǒng)一的名稱來表示的、順序排列的一組變量?!?.a2、數(shù)組元素:數(shù)組中的變量稱為數(shù)組元素,用序號來標識它們??梢杂脭?shù)組名及一個序號的標識一個數(shù)組元素。如:a(5)表示名稱為a的數(shù)組中序號為5的那個數(shù)組元素(變量)?!?.a(1)aa(2)a(3)a(4)a(5)a(6)…..a(n)…………數(shù)組元素6.1.2數(shù)組的下標與維數(shù)

1.數(shù)組的下標數(shù)組的下標可以是常數(shù)、變量、表達式或另一個數(shù)組的元素。下標值可以是正整數(shù)、0和負整數(shù),如果帶有小數(shù)部分將會自動地對它四舍五入取整。

2.數(shù)組的維數(shù)如果數(shù)組元素只使用一個下標就可以標明元素的位置,則稱這個數(shù)組為一維數(shù)組。

例如:a(2),s(5)

如果數(shù)組元素要使用二個下標才能標明元素的位置,則稱這個數(shù)組為二維數(shù)組。

例如:a(2,2),s(3,4)1)指定下標的上界Dim數(shù)組名(下標上界)As類型名Dim數(shù)組名(第一維下標上界,第二維下標上界)As類型名

2)指定下標的取值范圍

Dim數(shù)組名(下標下界To下標上界)AS類型名

Dim數(shù)組名(下標下界To下標上界,第二維的下界to上界)AS類型名6.2.1數(shù)組聲明語句6.2數(shù)組的聲明和應(yīng)用

用Array函數(shù),根據(jù)數(shù)據(jù)表生成一個一維數(shù)組。Array函數(shù)返回一個包含數(shù)據(jù)表中數(shù)據(jù)的Variant類型數(shù)組,其使用格式為:

變體名=Array(數(shù)據(jù)表)

例如:dima[asvariant]a=array(2,5,6,8,10,5,9)6.2.2Array函數(shù)其中:“變體名”是預(yù)先定義的類型為變體的數(shù)組名;“數(shù)據(jù)表”是一個用逗號隔開的值表,這些值用于給函數(shù)返回的Variant所包含的數(shù)組各元素賦值;只能生成一維數(shù)組。下標默認為0開始,如有OptionBase1,則為1開始。6.2.3數(shù)組應(yīng)用例6-1:斐波那契(Fibonacci)數(shù)列如下:

1,1,2,3,5,8,13,21,……試求出該數(shù)列的前30項。

假定有n個數(shù)的序列,存放在數(shù)組

a(1ton)中要求按遞增的次序排序。算法的步驟如下:例6-6:數(shù)組排序(1)第1輪:先將a(1)與a(2)比較,若a(2)<a(1),則將a(1)與a(2)的值交換,a(1)存放較小者。再將a(1)與a(3)、…a(n)比較,并依次作出同樣的處理,n個數(shù)中的最小者放入a(1)中,完成了第一輪比較。(2)第2輪:將a(2)與a(3)、…a(n),并依次作出同樣的處理,第一輪余下的n-1個數(shù)中的最小者放入a(2)中,完成了第二輪比較。(3)繼續(xù)進行第3輪、第四輪、…直到第n-1輪,余下的a(n)就是n個數(shù)中的最大者。排序過程如下:原始數(shù)據(jù)

869327a(1)a(2)a(3)a(4)a(5)a(6)第1輪交換后289637a(2)a(3)a(4)a(5)a(6)第2輪交換后239687a(3)a(4)a(5)a(6)第3輪交換后236987a(4)a(5)a(6)第4輪交換后236789a(5)a(6)第5輪交換后236789例:對已知存放在數(shù)組中的6個數(shù),用選擇排序按遞增順序排序。

靜態(tài)數(shù)組-在聲明時已確定了大小的數(shù)組,其在程序運行過程中是不變的。

動態(tài)數(shù)組-在聲明時未給出數(shù)組的大?。ㄊ÷岳ㄌ栔械南聵耍?,當要使用它時,隨時用ReDim語句重新指出數(shù)組的大小。建立動態(tài)數(shù)組的方法:使用Dim語句聲明下標括號內(nèi)為空的數(shù)組,然后在過程中用ReDim語句指明該數(shù)組的大小。6.3動態(tài)數(shù)組6.3.1建立動態(tài)數(shù)組(1)聲明動態(tài)數(shù)組DimDynArray()(2)用Redim分配實際元素個數(shù)ReDim數(shù)組名(下標[,下標2…])[As類型]6.3.2保留動態(tài)數(shù)組的內(nèi)容每次執(zhí)行ReDim語句時,當前存儲在數(shù)組中的值都會全部丟失。當希望改變數(shù)組大小,但又不丟失數(shù)組中原有的數(shù)據(jù),使用具有Preserve關(guān)鍵字的ReDim語句就可做到這點。UBound函數(shù)引用數(shù)組下標的上界:UBound(數(shù)組名[,維序號])LBound函數(shù)引用數(shù)組下標的下界:LBound(數(shù)組名[,維序號])例如:ReDimPreserveArray(UBound(Array)+1)注意:在用Preserve關(guān)鍵字時,只能改變多維數(shù)組中最后一維的上界。6.3.3數(shù)組刷新語句數(shù)組刷新語句(Erase)可以作用于固定數(shù)組和動態(tài)數(shù)組,清除大小固定的數(shù)組的元素的內(nèi)容,釋放動態(tài)數(shù)組占用的存儲空間。其語法格式為:

Erase數(shù)組名表說明:⑴對固定大?。o態(tài))數(shù)組,Erase語句將數(shù)組重新初始化;⑵對于動態(tài)數(shù)組,Erase將釋放動態(tài)數(shù)組所使用的內(nèi)存空間。6.4ForEach…Next語句ForEach…Next語句是專門用于數(shù)組或集合的循環(huán)語句。對數(shù)組或集合中的每個元素逐個重復(fù)循環(huán)。功能:對數(shù)組元素進行查詢,顯示或讀取。循環(huán)的次數(shù)與數(shù)組元素的個數(shù)相等。格式:

ForEach<成員>In<數(shù)組>[<語句列>][ExitFor]Next[<成員>]

其中:<成員>內(nèi)的內(nèi)容實際就是數(shù)組或集合中的每個元素,用一個變量代表,<數(shù)組>是一個數(shù)組名,沒有括號上下界。注意:不能用此語句對普通的數(shù)組元素作“賦值”的操作,因為語句中的<成員>表示數(shù)組元素的值,不是數(shù)組元素本身。但是可以對控件數(shù)組中的每個控件的屬性作賦值操作。

6.5控件數(shù)組

6.5.1控件數(shù)組的概念

控件數(shù)組是由一組相同類型的控件組成。他們共用一個控件名,具有相同的name屬性。當建立控件數(shù)組時,系統(tǒng)給每個元素賦一個唯一的索引號(Index),通過屬性窗口的Index屬性,可以知道該控件的下標是多少,第一個是0。為了區(qū)分控件數(shù)組的各個元素,VB會把下標值傳送給過程(即返回給index):

PrivateSubCommand1_Click(IndexAsInteger)6.5.2控件數(shù)組的建立。3種方法:1、改變控件的名稱2、復(fù)制現(xiàn)有控件3、指定控件的索引值6.5.3控件數(shù)組的使用一般用于實現(xiàn)控件和選項按鈕分組。1、命令按鈕組例:單擊每個命令按鈕時顯示按鈕對應(yīng)的序號。2、選項按鈕組3、標簽組第六章

END第七章過程7.1通用過程7.2參數(shù)傳遞7.3過程的嵌套與遞歸調(diào)用7.4變量、過程的作用域7.5多窗體與SubMain過程在VisualBasic中最常使用下列兩種通用過程:

Sub

過程不返回值,稱為子過程。

Function

過程返回值,稱為函數(shù)過程。通用過程Sub過程Function過程7.1通用過程1)Sub過程的定義

兩種定義方法:

(1)利用“工具”菜單下的“添加過程”命令定義7.1.1Sub過程(2)利用代碼窗口直接定義定義格式如下:

[Private|Public][Static]Sub<子過程名>[(形參)]

語句組

[ExitSub]

語句組

EndSub2)Sub過程的調(diào)用

Sub過程不能夠被直接執(zhí)行,只能夠通過其他過程調(diào)用它,才能被執(zhí)行。

Sub過程的調(diào)用是一句獨立的調(diào)用語句,有兩種形式:

Call子過程名[(實參表列)]

子過程名[實參表列]

1)函數(shù)過程的定義格式:[Private|Public][Static]

Function<函數(shù)名>{[<形參表>]}[AS<類型>]∶[<函數(shù)名>=<表達式>][ExitFunction]∶EndFunction7.1.2Function過程2)函數(shù)過程的調(diào)用函數(shù)過程的調(diào)用:除了事先需要定義函數(shù)外,調(diào)用FUNCTION函數(shù)的方法與調(diào)用標準函數(shù)的方法相同。其形式為:

函數(shù)過程名([參數(shù)列表])

如:m=fact(5)由于函數(shù)過程名返回一個值,故函數(shù)過程不能作為單獨的語句加以調(diào)用,它必須作為表達式或表達式的一部分,再配以其他的語法成分構(gòu)成語句。7.2參數(shù)傳遞7.2.1形式參數(shù)與實際參數(shù)的概念

1、形式參數(shù)形式參數(shù)—在定義通用過程時,出現(xiàn)在Sub或Function語句中的變量名,是接收數(shù)據(jù)的變量。2、實際參數(shù)實際參數(shù)—在調(diào)用Sub或Function過程時,傳送給Sub或Function過程的常量、變量或表達式。7.2.2參數(shù)按地址傳遞和按值傳遞1)按值傳遞—如果調(diào)用語句中的實際參數(shù)是常量或表達式,或者定義過程時用ByVal關(guān)鍵字,就可以按值傳遞。按值傳遞時,傳遞的只是變量的副本!在過程中對形參的變化不會影響變量本身.如果定義過程時沒有用ByVal而又要求變量按值傳遞時,可以先把變量變成一個表達式,把變量轉(zhuǎn)換成表達式的最簡單的方法就是把它放在括號內(nèi)。

2)按址傳遞—讓過程根據(jù)變量的內(nèi)存地址去訪問變量的內(nèi)容,即形式參數(shù)和實際參數(shù)使用相同的內(nèi)存地址單元,這樣通過子過程就可以改變變量本身的值。系統(tǒng)缺省按地址傳遞參數(shù)。在按址傳遞調(diào)用時,實際參數(shù)必須是變量,而常量或表達式無法傳址。3)數(shù)組參數(shù)的傳遞在VB中允許參數(shù)是數(shù)組,數(shù)組只能通過傳址方式進行傳遞,在傳遞數(shù)組時還要注意以下事項:(1)在實參列表和形參列表中放入數(shù)組名,忽略維數(shù)的定義,但圓括號不能省略。(2)如果要傳遞數(shù)組的某一個元素,則只須直接寫上該數(shù)組元素。如:Calltest(4,(3))7.3過程的嵌套與遞歸調(diào)用嵌套—在一個過程中調(diào)用另一個過程遞歸—過程直接或間接地調(diào)用其自身7.3.1過程的嵌套調(diào)用主程序調(diào)用Sprg1EndSubSprg1調(diào)用Sprg2EndSubSprg2EndSub過程的嵌套圖解7.3.2過程的遞歸調(diào)用使用遞歸調(diào)用的條件是:⑴可以把要解決的問題轉(zhuǎn)化為一個新的問題,而這個新的問題的解法仍與原來的解法相同,只是所處理的對象有規(guī)律地遞增或遞減。⑵可以用上述轉(zhuǎn)化過程使問題得到解決。⑶有一個明確的結(jié)束遞歸的條件。

7.4變量、過程的作用域7.4.1代碼模塊的概念1)窗體模塊由于VisualBasic應(yīng)用程序是基于對象的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,對象包含數(shù)據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內(nèi)在特性。應(yīng)用程序中的每個窗體都有一個包含其代碼的相關(guān)的窗體模塊(文件擴展名為.FRM)。窗體模塊的創(chuàng)建,保存和移出操作。每個窗體模塊都包含:⑴事件過程,即代碼部分,其中有為響應(yīng)特定事件而執(zhí)行的指令;⑵控件。在窗體模塊中,對窗體上的每個控件都有一個對應(yīng)的事件過程集;⑶窗體模塊還可包含通用過程,它對來自任何事件過程的調(diào)用都作出響應(yīng)。⑷窗體變量的說明、外部過程的窗體級聲明。

2)標準模塊標準模塊(具有.bas文件擴展名)可以包含類型、常數(shù)、變量、外部過程和公共過程的公共的或模塊級的聲明??蓪⒛切┡c特定窗體或控件無關(guān)的代碼放入另一類型的模塊—

標準模塊(文件擴展名為.BAS)中。如果一個過程可能用來響應(yīng)幾個不同對象中的事件,應(yīng)該將這個過程放在標準模塊中,而不應(yīng)在每一個對象的事件過程中重復(fù)相同的代碼。3)類模塊類模塊(具有.cls文件擴展名)與窗體模塊類似,只是沒有可見的用戶界面??梢允褂妙惸K創(chuàng)建含有方法和屬性

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論