VB程序設(shè)計(jì)教程_第1頁(yè)
VB程序設(shè)計(jì)教程_第2頁(yè)
VB程序設(shè)計(jì)教程_第3頁(yè)
VB程序設(shè)計(jì)教程_第4頁(yè)
VB程序設(shè)計(jì)教程_第5頁(yè)
已閱讀5頁(yè),還剩411頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

VisualBasic

程序設(shè)計(jì)教程

基于Windows的應(yīng)用程序是如何開發(fā)的?目錄第一章VisualBasic概述第二章基本控件第三章VB語(yǔ)言基礎(chǔ)第四章程序結(jié)構(gòu)第五章數(shù)組第六章過程第七章常用控件第八章界面設(shè)計(jì)第九章數(shù)據(jù)庫(kù)應(yīng)用第一章VisualBasic概述

第一節(jié)VisualBasic簡(jiǎn)介BASIC是20世紀(jì)60年代由美國(guó)達(dá)特茅斯大學(xué)的兩位教授共同設(shè)計(jì)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,是國(guó)際上廣泛使用的一種計(jì)算機(jī)高級(jí)語(yǔ)言。Basic語(yǔ)言簡(jiǎn)單易學(xué)、人機(jī)交互容易、程序調(diào)試簡(jiǎn)便,目前仍是計(jì)算機(jī)程序設(shè)計(jì)初學(xué)者入門學(xué)習(xí)的主要語(yǔ)言之一。一、VisualBasic的發(fā)展發(fā)展過程1964、BASIC20世紀(jì)90年代、VISUALBASIC1.0(圖形界面程序設(shè)計(jì)語(yǔ)言)VISUALBASIC3.0、強(qiáng)大的數(shù)據(jù)庫(kù)管理功能VISUALBASIC6.0、,VisualBasic6.0在面向?qū)ο缶幊痰牡燃夹g(shù)上做了許多擴(kuò)展,VisualBasic已經(jīng)成為一種真正專業(yè)化的開發(fā)語(yǔ)言,用戶可以編寫企業(yè)水平的客戶/服務(wù)器程序和強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序。二、VISUALBASIC的特點(diǎn)1.具有面向?qū)ο?.具有可視化編程特點(diǎn)3.強(qiáng)大的數(shù)據(jù)庫(kù)處理功能4.可使用其他應(yīng)用程序提供的功能5.支持internet程序開發(fā)功能6..exe應(yīng)用程序三、VISUALBASIC6.0的新增功能1、新增功能

2、改進(jìn)的功能第二節(jié)VISUALBASIC的安裝與運(yùn)行VisualBasic6.0中文版包括3種版本VisualBasic學(xué)習(xí)版(Learning)VisualBasic專業(yè)版(Professional)VisualBasic企業(yè)版(Enterprise)一、VisualBasic的安裝二、VisualBasic的運(yùn)行第三節(jié)VisualBasic的集成開發(fā)環(huán)境1.主窗口應(yīng)用程序窗口,由標(biāo)題欄、菜單欄和工具欄組成2.窗體(form)窗口設(shè)計(jì)vb程序的界面3.代碼(code)窗口編輯窗體、標(biāo)準(zhǔn)模塊中的代碼4.屬性(properties)窗口所有窗體或控件的屬性設(shè)置5.工程資源管理器(projectexpror)窗口保存一個(gè)應(yīng)用程序所有的文件6.工具箱(toolbox)窗口顯示各種控件的制作工具,供用戶在窗體上設(shè)計(jì)7.窗體布局窗口8.對(duì)象瀏覽器9.立即窗口、本地窗口和監(jiān)視窗口第四節(jié)面向?qū)ο蟪绦蛟O(shè)計(jì)

程序設(shè)計(jì)方法的發(fā)展1.初期的程序設(shè)計(jì)高運(yùn)行效率、少占用內(nèi)存為目標(biāo)2.結(jié)構(gòu)化程序設(shè)計(jì) 程序的可讀性、可維護(hù)性為目標(biāo)程序=算法+數(shù)據(jù)結(jié)構(gòu)的面向過程的程序設(shè)計(jì)3.面向?qū)ο蟮某绦蛟O(shè)計(jì)降低程序的復(fù)雜性、提高軟件的開法效率和改善工作界面為目標(biāo)程序=對(duì)象+消息的面向?qū)ο蟮某绦蛟O(shè)計(jì)一、對(duì)象和類1.類類是創(chuàng)建對(duì)象實(shí)例的模板,包含了創(chuàng)建對(duì)象的屬性描述和行為特征的定義.2.對(duì)象是類的一個(gè)實(shí)例,繼承了類的屬性、方法。

Vb中常用的對(duì)象有:窗體、控件等。3.對(duì)象的建立和命名4.對(duì)象的三要素(1)屬性

對(duì)象的性質(zhì),即用來描述和反映對(duì)象特征的參數(shù)。(2)方法

對(duì)象的行為,即將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調(diào)用。

(3)事件響應(yīng)對(duì)象的動(dòng)作稱為事件,它發(fā)生在用戶與應(yīng)用程序交互時(shí)。如單擊控件、鼠標(biāo)移動(dòng)、鍵盤按下等。事件過程指附在該對(duì)象上的用戶編寫的程序代碼,是事件的處理程序。事件驅(qū)動(dòng)過程是圖形用戶界面的本質(zhì),由用戶控制而代碼作出響應(yīng)。5.VB程序的執(zhí)行步驟如下:1)啟動(dòng)應(yīng)用程序,裝載和顯示窗體2)窗體(或窗體上的控件)等待事件的發(fā)生;3)事件發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件過程;4)重復(fù)執(zhí)行步驟(2)和(3);5)直到遇到“END”結(jié)束語(yǔ)句結(jié)束程序的運(yùn)行或按“結(jié)束”強(qiáng)行停止程序的運(yùn)行。二、創(chuàng)建應(yīng)用程序的步驟以例1.1為例1.建立用戶界面的對(duì)象2.對(duì)象屬性的設(shè)置3.對(duì)象事件過程及編程4.程序運(yùn)行和調(diào)試5.保存文件三、VisualBasic程序開發(fā)中的兩個(gè)重要特性1.事件驅(qū)動(dòng)模型2.交互式開發(fā)第二章基本控件2.1控件概述2.1.1控件分類在VisualBasic中,控件可分成三類:

控件內(nèi)部控件(標(biāo)準(zhǔn)控件)

:即控件工具欄中的控件,共20個(gè)。如CommandButton

控件、Text控件、Label控件等。ActiveX控件:是擴(kuò)展名為.ocx的獨(dú)立文件,其中包括VB提供的控件(如DataList

控件)和第三方提供的ActiveX控件??刹迦氲膶?duì)象:MicrosoftExcel工作表對(duì)象MicrosoftProject日歷對(duì)象2.1控件概述2.1.2使用標(biāo)準(zhǔn)ActiveX控件

VB包含部分ActiveX控件,即標(biāo)準(zhǔn)ActiveX控件),通過這些控件可以應(yīng)用程序中引入高級(jí)功能。2.1.3添加和刪除ActiveX控件1、在工具箱中添加ActiveX控件:1)在“工程”菜單中選擇“部件”。2)選定.ocx控件名旁邊的復(fù)選框,然后選擇“確定”。將控件放入工具箱2、刪除ActiveX控件:1)在工程的窗體上刪除控件的所有實(shí)例,并刪除工程代碼中對(duì)控件的所有引用。若代碼中還留有被刪除控件的引用,則在編譯應(yīng)用程序時(shí)將顯示出錯(cuò)信息。2.在“工程”菜單中選擇“部件”,清除.ocx控件名旁邊的復(fù)選框,然后選擇“確定”。2.1控件概述2.1.4控件命名第一次創(chuàng)建對(duì)象時(shí),VisualBasic將其Name屬性設(shè)置為缺省值。為窗體和控件命名,必須遵循以下命名規(guī)則:1、必須以字母開頭。2、只能包含字母、數(shù)字和下劃線字符_;不允許有標(biāo)點(diǎn)符號(hào)字符和空格。3、不能超過40個(gè)字符。2.1.5設(shè)置或獲取控件屬性值所有控件都有一個(gè)這樣的屬性:只需引用該控件對(duì)象名而無需使用屬性名就可以設(shè)置該屬性的值,稱此屬性為控件的默認(rèn)屬性值。如Text(文本框)控件的默認(rèn)屬性為Text屬性、Label(標(biāo)簽)控件的默認(rèn)屬性為Caption屬性。

Text1.Text=“VisualBasic”等價(jià)于Text1=“VisualBasic”Label1.Caption=“VisualBasic”等價(jià)于Label1=“VisualBasic”

控件對(duì)象的屬性值可以任意設(shè)置,也可以通過控件屬性來獲取其屬性值。2.2對(duì)象的屬性、事件和方法屬性、事件和方法被稱為對(duì)象的三要素。對(duì)象的三要素屬性:反映對(duì)象的性質(zhì)或特征的參數(shù)事件:預(yù)先設(shè)置好的、能夠被對(duì)象識(shí)別的動(dòng)作。如click(單擊)、dblclick(雙擊)、load(裝入)等。方法:一種特殊的被封裝好的過程和函數(shù)(程序段)2.2對(duì)象的屬性、事件和方法2.2.1屬性屬性的設(shè)置有兩種方法:1、通過屬性設(shè)置框直接設(shè)置對(duì)象的屬性;2、在程序代碼中通過賦值實(shí)現(xiàn)。格式:對(duì)象.屬性=屬性值例如:給一個(gè)對(duì)象名為label1的標(biāo)簽控件的Caption屬性設(shè)置為“VB教程”,其在程序代碼中的書寫形式如下:

Label1.Caption="VB教程"2.2對(duì)象的屬性、事件和方法2.2.2事件對(duì)于控件對(duì)象而言,事件就是發(fā)生在該對(duì)象上的事情。VB中的事件類型可以分為三類,即鍵盤事件,鼠標(biāo)事件和程序事件。1、鍵盤事件指用戶按鍵盤上的按鍵后產(chǎn)生的事件,最常見的鍵盤事件主要有以下三個(gè):

KeyPress:按一個(gè)鍵之后觸發(fā)事件

KeyDown:按下一個(gè)鍵時(shí)觸發(fā)的事件

KeyUp:松開一個(gè)鍵時(shí)觸發(fā)的事件2.2對(duì)象的屬性、事件和方法事件一旦發(fā)生,VB就立即尋找相應(yīng)的程序進(jìn)行處理。響應(yīng)一個(gè)事件的程序代碼,在VB中稱為一個(gè)事件過程。VB應(yīng)用程序設(shè)計(jì)的主要工作就是為對(duì)象編寫過程中的事件代碼。事件過程的形式如下:Sub對(duì)象名_事件([參數(shù)列表])…事件過程代碼EndSub例如:?jiǎn)螕鬋ommand1命令按鈕,使命令按鈕的字體設(shè)置為“宋體”,則對(duì)應(yīng)的事件過程如下:PrivateSubCommand1_Click()

Command1.Caption==“替換"EndSub2.2對(duì)象的屬性、事件和方法2.2.3控件的方法方法是特定對(duì)象動(dòng)作的過程,是一個(gè)對(duì)象對(duì)外提供的某些特定動(dòng)作的接口。事實(shí)上,方法是對(duì)象本身內(nèi)含的程序段,它可能是函數(shù),可能是過程,但實(shí)現(xiàn)功能的步驟和細(xì)節(jié),用戶看不到。用戶只能了解這個(gè)對(duì)象的功能和用法。按照約定直接去使用它。因?yàn)榉椒ㄊ敲嫦驅(qū)ο蟮模栽谡{(diào)用時(shí)一定要用對(duì)象,對(duì)象方法的調(diào)用格式為:

[對(duì)象.]方法[參數(shù)名表]

其中若省略了對(duì)象,表示為當(dāng)前對(duì)象,一般指窗體。例如:

Form1.Print"2008北京奧運(yùn)會(huì)歡迎您"

此語(yǔ)句用print方法在對(duì)象為Form1的窗體上顯示"2008北京奧運(yùn)會(huì)歡迎您"的字符串。2.3

基本控件2.3.1窗體窗體是一個(gè)可以包含其他對(duì)象的對(duì)象。在界面設(shè)計(jì)時(shí),把窗體作為一個(gè)容器,通過“控件工具箱”往窗體中添加各種控件。用戶根據(jù)需求在窗體上制作出用戶界面,而在程序運(yùn)行時(shí),窗體就成為用戶與應(yīng)用程序進(jìn)行交互操作的窗口。需要注意的是,很多時(shí)候界面設(shè)計(jì)時(shí)的窗體和所加控件的外觀與程序運(yùn)行時(shí)的外觀是不完全相同的,因?yàn)橛行┛丶谶\(yùn)行時(shí)是不顯示的,如計(jì)時(shí)器控件等。窗體的構(gòu)成2.3

基本控件一、窗體的屬性對(duì)象表現(xiàn)出來的特征是由對(duì)象的各種屬性決定的。對(duì)窗體的屬性進(jìn)行設(shè)置可以在界面設(shè)計(jì)時(shí)通過屬性窗口設(shè)置窗體的各種屬性值,也可以在運(yùn)行時(shí)由代碼段給窗體的屬性賦值來實(shí)現(xiàn)。決定窗體特性的屬性在屬性窗口內(nèi)可以查看和設(shè)置。2.3

基本控件下面介紹幾個(gè)常用的屬性:(1)Name屬性該屬性用于設(shè)置窗體的名稱,在程序設(shè)計(jì)時(shí)區(qū)別不同的窗體對(duì)象,運(yùn)行時(shí)為只讀。(2)Appearance屬性該屬性值為0時(shí),對(duì)象以平面效果顯示;值為1時(shí),對(duì)象以3D效果顯示。(3)AutoRedraw屬性值為True時(shí),重畫窗體內(nèi)所有圖形;值為False時(shí),要調(diào)用一個(gè)事件過程才能完成重畫工作。(4)BackColor屬性和ForeColor屬性窗體窗口的背景顏色由屬性BackColor確定,窗體窗口的前景色由ForeColor屬性確定。用戶可以在右側(cè)的屬性窗口中找到它們并單擊,出現(xiàn)黑色向下箭頭時(shí),單擊這個(gè)箭頭打開調(diào)色板,選擇合適的顏色即可。2.3

基本控件(5)BorderStyle屬性BorderStyle屬性決定窗體的“邊界風(fēng)格”。它的值有4種選擇:0:窗口無邊界1:窗口邊界為單線條,而且運(yùn)行期間窗口的尺寸是固定的,不能改變大小。2:窗口邊界為雙線條,而且運(yùn)行期間可以改變窗口的尺寸。3:窗口邊界為雙線條,運(yùn)行期間不可以改變窗口的尺寸。(6)Caption屬性該屬性的值就是窗口標(biāo)題欄中顯示的內(nèi)容。初學(xué)者一定要把它與Name屬性分開,Name屬性的值是在整個(gè)程序設(shè)計(jì)中對(duì)象唯一的名字,在程序運(yùn)行中是只讀的,Caption屬性的值是顯示在界面上的用戶看到的文本信息。在程序運(yùn)行中可以通過代碼設(shè)計(jì)進(jìn)行更改。(7)ClipControls屬性該屬性值設(shè)置Paint事件的繪圖方法是重畫整個(gè)對(duì)象,還是重畫新顯示的區(qū)域。2.3

基本控件(8)ControlBox屬性屬性值為True時(shí),決定窗體左上角有控制菜單;值為False時(shí)窗體左上角沒有控制菜單,同時(shí)自動(dòng)將MaxButton與MinButton屬性的值都設(shè)置為False。(9)Enabled屬性該屬性值為True和False。決定對(duì)象是否響應(yīng)用戶生成事件。若值為True時(shí)響應(yīng),為False時(shí)不響應(yīng)。(10)Height、Wide、Left和Top屬性Height、Wide屬性值決定窗體的大小即用于設(shè)置窗體的高度和寬度值,Left、Top屬性值決定窗體的位置即窗體離屏幕左邊與上邊的距離。(11)Font屬性單擊該屬性右側(cè)的按鈕,在彈出的“字體”對(duì)話框中設(shè)置窗體上文字的字體、字號(hào)和字型等。2.3

基本控件(12)Icon屬性該屬性的值決定窗體圖標(biāo),即返回運(yùn)行時(shí)窗體最小化所顯示的圖標(biāo),單擊Icon屬性右側(cè)的按鈕,在打開的“加載圖片”對(duì)話框中選擇圖標(biāo)文件加載圖標(biāo)。(13)MaxButton與MinButton屬性該屬性的值可以是True和False,MaxButton屬性的值決定在窗口上是否有最大化按鈕,MinButton屬性的值決定在窗口上是否有最小化按鈕。(14)Picture屬性該屬性設(shè)置控件中顯示的圖形,單擊屬性窗口中的Picture屬性右側(cè)的按鈕會(huì)彈出“加載圖片”對(duì)話框,選擇合適的圖像文件,作為窗體背景中要顯示的圖片。2.3

基本控件(15)Visible屬性該屬性值為True時(shí)窗體可見,值為False時(shí)窗體隱藏不可見。(16)WindowsState屬性該屬性表示窗體執(zhí)行時(shí)以什么狀態(tài)顯示,屬性值為0(Normal)時(shí),正常窗口狀態(tài),有窗口邊界;屬性值為1(Minimized)時(shí),最小化狀態(tài),以圖標(biāo)方式顯示;屬性值為2(Maximized)時(shí),最大化狀態(tài),無邊框,充滿整個(gè)屏幕。2.3

基本控件二、窗體的事件與方法1、事件VB應(yīng)用程序是建立在事件驅(qū)動(dòng)基礎(chǔ)上的,不同的對(duì)象對(duì)應(yīng)不同的事件發(fā)生,事件發(fā)生時(shí)執(zhí)行相應(yīng)的代碼段的程序來響應(yīng)該事件。窗體的事件較多,下面主要介紹窗體的常見事件及這些事件激發(fā)響應(yīng)的時(shí)間。(1)Click(單擊)事件與DblClick(雙擊)事件Click事件與DblClick事件發(fā)生在單擊和雙擊窗體時(shí),注意操作一定要發(fā)生在窗體上,而不是窗體中的控件上。(2)Load(裝入)與Unload(卸載)事件在啟動(dòng)應(yīng)用程序,窗體被裝入內(nèi)存中時(shí),就會(huì)觸發(fā)Load事件,而Unload事件發(fā)生在從內(nèi)存中卸載該窗體時(shí)。2.3

基本控件(3)Activate(活動(dòng))事件與Deactivate(非活動(dòng)的)事件Activate事件發(fā)生在當(dāng)前窗體被激活時(shí),Deactivate事件發(fā)生在非當(dāng)前窗體被激活時(shí)。(4)QueryUnload事件關(guān)閉窗體時(shí)激發(fā)該事件。(5)Resize事件在啟動(dòng)窗體或改變窗體尺寸時(shí)激發(fā)該事件。2.3

基本控件2、方法方法是VB自身提供的一些特殊的過程,用來完成一定的操作。不同的對(duì)象可執(zhí)行不同的操作,因此,對(duì)象調(diào)用的方法也有所不同。窗體上常用的方法有:(1)Show方法調(diào)用該方法可以將窗體顯示在屏幕上。調(diào)用格式:[對(duì)象名].Show(2)Hide方法調(diào)用該方法可以隱藏窗體,但不會(huì)卸載窗體。調(diào)用格式:[對(duì)象名].Hide2.3

基本控件(3)Move方法可以將窗體移動(dòng)到一定的坐標(biāo)位置。調(diào)用格式:[對(duì)象名].MoveLeft,Top,Width,HeightPrivateSubForm1_Click'Form1窗體的Click事件過程

Form1.MoveLeft-10,Top+10,Width-10,Height-1'移動(dòng)窗體EndSub程序運(yùn)行時(shí),用戶每單擊窗體一次,該窗體就會(huì)向屏幕的左邊,下方各移動(dòng)10Wip,同時(shí)將窗體的寬度高度都減少10Wip,窗體隨著用戶的單擊越變?cè)叫?,而且越來越靠近左下方?.3

基本控件(4)Cls方法可以清除窗體內(nèi)的文本和圖形。調(diào)用格式:[對(duì)象名].Cls(5)Print方法在窗體上顯示文字信息。調(diào)用格式:[對(duì)象名].Print圖2-2窗體的運(yùn)行界面PrivateSubForm_Click()'Form1窗體的Click事件過程Print"2008北京奧運(yùn)會(huì)歡迎您!"

'隱藏窗體Form1EndSub(6)Refresh方法強(qiáng)制全部重繪窗體及控件。調(diào)用格式:[對(duì)象名].Refresh2.3

基本控件2.3.2命令按鈕一、命令按鈕的屬性程序運(yùn)行時(shí),對(duì)應(yīng)用程序進(jìn)行交互控制最簡(jiǎn)單的方法,就是使用命令按鈕。常用的屬性有:(1)Name屬性該屬性用于設(shè)置命令按鈕的名稱,運(yùn)行時(shí)為只讀。(2)Style屬性此屬性設(shè)置命令按鈕的外觀。它的值有以下兩種選擇。0:Standard按鈕以標(biāo)準(zhǔn)的形式顯示。1:Graphical按鈕以圖形的方式顯示。(3)Caption屬性該屬性主要是在按鈕上顯示文字,告訴用戶該按鈕的功能。2.3

基本控件(4)Enabled屬性該屬性用來控制命令按鈕對(duì)象是否可用,值為True時(shí)表示該按鈕對(duì)象可用,值為False時(shí)表示該按鈕對(duì)象暫時(shí)不可用。(5)Default屬性此屬性將一個(gè)命令按鈕設(shè)置為默認(rèn)的“活動(dòng)按鈕”,它的值為True時(shí)表示該按鈕被確定為默認(rèn)的“活動(dòng)按鈕”,值為False時(shí)不是默認(rèn)的“活動(dòng)按鈕”。(6)Cancel屬性此屬性設(shè)置命令按鈕是否為默認(rèn)的“取消按鈕”,它的值為True時(shí)表示該按鈕被確定為默認(rèn)的“取消按鈕”,值為False時(shí)不是默認(rèn)的“取消按鈕”。2.3

基本控件二、命令按鈕的事件命令按鈕的事件有Click,MouseDown事件和MouseUp等事件,當(dāng)用鼠標(biāo)單擊命令按鈕,觸發(fā)該按鈕的Click事件時(shí),也將觸發(fā)其他兩個(gè)事件。三個(gè)事件發(fā)生的順序?yàn)镸ouseDown事件,Click事件和MouseUp事件,命令按鈕最主要的事件是Click事件。【例2.1】設(shè)計(jì)一個(gè)程序可以通過命令改變窗體大小。窗口界面如圖:2.3

基本控件代碼編寫如下:PrivateSubCommand1_Click()

Form1.WindowState=vbMinimized‘最小化EndSubPrivateSubCommand2_Click()

Form1.WindowState=vbMaximized‘最大化EndSubPrivateSubCommand3_Click()

Form1.WindowState=Normal‘正常EndSub

PrivateSubCommand4_Click()End‘退出EndSub

2.3

基本控件2.3.3文本框控件一、文本框控件的屬性文本框控件一般用來接收和顯示輸入輸出信息,用于編輯文本。(1)Name屬性此屬性的值就是文本框的名字,文本框沒有Caption屬性。(2)Text屬性Text屬性既可以輸入文本,又可以輸出信息,是文本框控件最為重要的屬性。2.3

基本控件(3)MaxLenght屬性用于設(shè)置文本框中輸入字符串的長(zhǎng)度限制。默認(rèn)值為0,表示該文本框中字符串的長(zhǎng)度由系統(tǒng)限制。(4)Alignment屬性設(shè)置文本框中文本內(nèi)容的對(duì)齊方式。0為左對(duì)齊,1為右對(duì)齊,2為中間對(duì)齊。(5)MultiLine屬性該屬性決定文本框中的內(nèi)容是否可以顯示多行。默認(rèn)值為False。在屬性窗口中找到該屬性,單擊其右側(cè)的下三角按鈕,在下拉列表中選擇True,,程序運(yùn)行時(shí)就可以在界面上的文本框中輸入多行信息。2.3

基本控件(6)FontName屬性FontName屬性設(shè)置字體的類型;FontSize屬性設(shè)置字體的大?。籉ontItalic屬性設(shè)置字體輸出的形式是否為斜體;FontUnderline屬性是指是否在輸出的文本下加下劃線,值為0時(shí)不加下劃線,值為1時(shí)加下劃線;FontBold屬性設(shè)置字體是否為粗體。所有這些屬性都是用于設(shè)置有關(guān)文本框輸出時(shí)文本的文字樣式的。例如,要求程序運(yùn)行時(shí)文本框內(nèi)輸出的文字為粗體,字號(hào)為20,字體類型是宋體,斜體。(7)ScrollBars屬性該屬性設(shè)置文本框是否添加滾動(dòng)條。它有以下4種選擇。0:不加滾動(dòng)條。1:只加水平滾動(dòng)條,此時(shí)文本框自動(dòng)換行功能被取消。2:只加垂直滾動(dòng)條。3:既加水平滾動(dòng)條又加垂直滾動(dòng)條,此時(shí)文本框成為一個(gè)簡(jiǎn)單的編輯器。要注意的是,只有當(dāng)MultiLine屬性為True時(shí),ScrollBars屬性設(shè)置才有效。2.3

基本控件(8)Locked屬性設(shè)置文本框內(nèi)容是否可以編輯。取值為True時(shí),可以滾動(dòng)顯示文本框中的內(nèi)容,但不能更改;取值為False時(shí),可以滾動(dòng)顯示并修改文本框中的內(nèi)容。(9)PasswordChar屬性此屬性的值決定程序運(yùn)行時(shí),用戶從鍵盤上輸入字符后,該文本框中顯示出來的對(duì)應(yīng)字符,它的默認(rèn)字符為空字符串。例如,一個(gè)文本框Text1,設(shè)置它的PasswordChar屬性值為“*”,程序運(yùn)行時(shí),不管利用鍵盤給界面上的文本框Text1中輸入任何字符,它都會(huì)將輸入的每一個(gè)字符在屏幕上顯示為“*”。這一屬性經(jīng)常被用在設(shè)置密碼的情況中,以保證輸入密碼的安全性。2.3

基本控件(10)SelStart、SelLength和SelText屬性在程序運(yùn)行中,對(duì)文本內(nèi)容進(jìn)行選擇操作時(shí),這三個(gè)屬性用來標(biāo)識(shí)用戶選中的正文。SelStart:選定正文的開始位置,第一個(gè)字符的位置是0,依次類推。SelLength:選定的正文長(zhǎng)度。SelText:選定的正文內(nèi)容。設(shè)置了SelStart和SelLength屬性后,VB會(huì)自動(dòng)將設(shè)定的正文送入SelText存放,這些屬性一般用于在文本編輯中設(shè)置插入點(diǎn)及范圍,選擇字符串,清除文本等,并且常與剪貼板一起使用,完成文本信息的剪切、拷貝和粘貼等功能。2.3

基本控件【例2.2】設(shè)計(jì)一個(gè)程序可檢查密碼是否正確,密碼為“1234”。代碼設(shè)計(jì)。PrivateSubCommand1_Click()'Command1按鈕的Click事件過程Pass=Text1.Text'將文本框Text1內(nèi)輸入的內(nèi)容賦給變量passIfPass="1234"Then'pass的值與密碼"1234"比較

Label2.Caption="密碼正確!"'相等,顯示正確ElseLabel2.Caption="密碼錯(cuò),請(qǐng)重新輸入!"‘不相等,顯示錯(cuò)誤提示EndIfEndSub2.3

基本控件二、文本框的事件與方法

在文本框所能響應(yīng)的事件中Change、KeyPress、LostFocus和GotFocus是最重要的事件。(1)Change事件當(dāng)用戶在文本框中輸入新的內(nèi)容或當(dāng)程序?qū)⑽谋究虻腡ext屬性設(shè)置新值,從而改變文本框的Text屬性時(shí)會(huì)引發(fā)該事件。當(dāng)用戶在文本框中輸入一個(gè)字符時(shí),就會(huì)引發(fā)一次Change事件。例如,用戶在文本框中輸入“hello”一詞時(shí),會(huì)引發(fā)5次Change事件。(2)KeyPress事件當(dāng)用戶按下并釋放鍵盤上的一個(gè)鍵位時(shí),就會(huì)引發(fā)焦點(diǎn)所在控件的KeyPress事件。此時(shí)會(huì)返回一個(gè)KeyAscii參數(shù)到該事件過程中。2.3

基本控件(3)

LostFocus事件此事件是對(duì)一個(gè)對(duì)象失去焦點(diǎn)時(shí)發(fā)生,移動(dòng)(Tab)制表鍵或單擊另一個(gè)對(duì)象都會(huì)發(fā)生LostFocus事件。該事件過程主要是用來對(duì)數(shù)據(jù)更新進(jìn)行驗(yàn)證和確認(rèn)。(4)GotFocus事件該事件與LostFocus事件相反,當(dāng)一個(gè)對(duì)象獲得焦點(diǎn)時(shí)發(fā)生。2.3

基本控件文本框中最有用的方法是SetFocus方法,該方法是把光標(biāo)移動(dòng)到指定的文本框中,在MicrosoftWindows環(huán)境下,任何時(shí)候都僅有一個(gè)窗口為激活狀態(tài),窗體或控件能接收鼠標(biāo)單擊或鍵盤輸入。當(dāng)對(duì)象的標(biāo)題或標(biāo)題欄被突出(藍(lán)色)顯示時(shí),說明該對(duì)象“具有焦點(diǎn)”。焦點(diǎn)能由用戶或應(yīng)用程序設(shè)置。利用文本檔的SetFocus方法可以設(shè)置焦點(diǎn)。其形式如下:

[對(duì)象.]SetFocus此方法還可以用于CheckBox、CommandButton和ListBox等控件。2.3

基本控件2.3.4標(biāo)簽控件標(biāo)簽控件在工具箱中的圖標(biāo)為,主要用來顯示文本信息。文本框控件沒有Caption屬性,后面章節(jié)要學(xué)到的列表框,組合框等控件也沒有此屬性。常用標(biāo)簽來對(duì)以上這些控件進(jìn)行標(biāo)注,還可以用標(biāo)簽為窗體添加說明文字,向用戶提供操作提示信息等。2.3

基本控件一、標(biāo)簽的屬性與事件標(biāo)簽的屬性中涉及更多的是標(biāo)簽的外觀樣式。(1)Name屬性用于設(shè)置標(biāo)簽的名稱。(2)Caption屬性用于設(shè)置標(biāo)簽中所要顯示的內(nèi)容。(3)BorderStyle屬性用于設(shè)置標(biāo)簽有無邊框。值為0時(shí)標(biāo)簽沒有邊框,值為1時(shí)標(biāo)簽有單線邊框。(4)AutoSize屬性設(shè)置標(biāo)簽控件能否自動(dòng)調(diào)整大小來顯示所有的內(nèi)容。值為True時(shí)標(biāo)簽控件大小隨文本的改變而改變;默認(rèn)值為False,標(biāo)簽控件大小不會(huì)隨文本的改變而改變。2.3

基本控件(5)Alignment屬性用于設(shè)置定在標(biāo)簽框上顯示信息的位置,取值為0時(shí)為左邊對(duì)齊,取值為1時(shí)為右邊對(duì)齊。(6)WordWrap屬性用于設(shè)置標(biāo)簽中所顯示的內(nèi)容是否能夠自動(dòng)換行。(7)Top屬性用于設(shè)置標(biāo)簽與窗體上邊界之間的距離。(8)Left屬性用于設(shè)置標(biāo)簽與窗體左邊界之間的距離。(9)BackColor屬性用于設(shè)置標(biāo)簽的背景色。(10)ForeColor屬性用于設(shè)置標(biāo)簽的前景色。2.3

基本控件2.標(biāo)簽事件標(biāo)簽控件可以有Click事件,DblClick事件和Change等事件,但它的主要作用是顯示文本,一般不需要編寫事件過程代碼。2.4綜合應(yīng)用VB程序設(shè)計(jì)主要有4個(gè)基本步驟:界面設(shè)計(jì),屬性設(shè)置,事件代碼編寫和調(diào)試運(yùn)行程序?!纠?.3】求兩數(shù)之和。(1)界面設(shè)計(jì)。設(shè)計(jì)界面如下圖所示。窗體上有2個(gè)標(biāo)簽,3個(gè)文本框和1個(gè)命令按鈕。其中,兩個(gè)文本框接收數(shù)據(jù),一個(gè)文本框顯示求和結(jié)果。2.4綜合應(yīng)用(3)代碼編寫PrivateSubCommand1_ClickDimaAs

Integer,

bAsIntegera=Text1.Textb=Text2.TextText3.Text=a+bEndSub(4)調(diào)試運(yùn)行對(duì)象名稱屬性值Label1Caption+Label2Caption=Text1Text空值Text2Text空值Text3Text空值Command1Caption求和(2)屬性設(shè)置本章小結(jié)通過本章的講述可以看到,窗體,命令按鈕,文本框和標(biāo)簽這些VB最基本的對(duì)象的屬性,事件和方法有其共同的地方,又各自有其特殊的地方。窗體常常是其他控件的載體,它有單擊Click,裝入Load和卸載Unload事件;文本框主要是用Text屬性來完成信息的輸入輸出的;標(biāo)簽主要用來顯示信息,觸發(fā)事件用的少;命令按鈕最常用的事件是單擊事件,通過它可以實(shí)現(xiàn)與程序的交互操作。第三章VB語(yǔ)言基礎(chǔ)本章主要內(nèi)容

本章主要介紹VB的基礎(chǔ)知識(shí)、基本語(yǔ)法規(guī)則,包括字符集、數(shù)據(jù)類型、常量、變量、命名規(guī)則、運(yùn)算符、表達(dá)式以及常用內(nèi)部函數(shù)。第一節(jié)數(shù)據(jù)類型一、基本數(shù)據(jù)類型計(jì)算機(jī)語(yǔ)言都規(guī)定了各自的數(shù)據(jù)類型,VB也不例外。其實(shí),在一個(gè)最簡(jiǎn)單的程序中數(shù)據(jù)類型是可以不作規(guī)定的,但為了程序的嚴(yán)謹(jǐn)和便于查看,正確的定義數(shù)據(jù)類型是必要的。定義數(shù)據(jù)的另一個(gè)原因是,不同的數(shù)據(jù)占用不同的內(nèi)存數(shù)量,定義合適的數(shù)據(jù)類型將有節(jié)省內(nèi)存空間的作用。

VB的數(shù)據(jù)類型比較豐富,主要可以分為兩大類:基本數(shù)據(jù)類型和用戶自定義類型。數(shù)據(jù)類型關(guān)鍵字類型符前綴字節(jié)范圍數(shù)值型整型Integer%int2-32768~32767長(zhǎng)整型Long&lng4-2147483648~2147483647單精度型Single!sng4負(fù)數(shù):-3.402823E38~1.401298E-45正數(shù):1.401298E-45~3.402823E38雙精度型Double#dbl8負(fù)數(shù):-1.79769313486232D308~-4.94065645841247D-324正數(shù):4.94065645841247D-324~1.79769313486232D308貨幣型Currency@cur8-922337203685477.5808~922337203685477.5807字節(jié)型Byte無byt10~255日期型Date(time)無dtm801,01,100~12,31,9999(00:00:00~23:59:59)邏輯型Boolean無bln2True與False字符型String

$str0~65535個(gè)字符對(duì)象型Object無obj4任何對(duì)象引用變體型Variant無vnt上述有效范圍之一VB的數(shù)據(jù)類型表第一節(jié)數(shù)據(jù)類型(一)數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)分為整型和實(shí)型兩類。整型數(shù)據(jù)分為整數(shù)和長(zhǎng)整數(shù),實(shí)型數(shù)據(jù)分為單精度和雙精度數(shù)據(jù)。有時(shí)把貨幣型和字節(jié)型數(shù)據(jù)也歸為數(shù)值型數(shù)據(jù)。1.整型(Interger)整數(shù)是不帶小數(shù)點(diǎn),范圍在-32768~32767之間,在機(jī)器內(nèi)使用2個(gè)字節(jié)存儲(chǔ)的整數(shù)。在VB中數(shù)尾常加“%”表示整型數(shù)據(jù),也可省略。如-34,78%。2.長(zhǎng)整型(Long)長(zhǎng)整數(shù)可以超過整數(shù)-32768~32767范圍,在機(jī)器內(nèi)用4個(gè)字節(jié)存儲(chǔ)。例如:369、-369、+369均表示整數(shù),而369.0就不是整數(shù);-9993977、12345678均表示長(zhǎng)整數(shù),而123,456則是非法數(shù)。整型數(shù)的運(yùn)算速度快、精確,且占用存儲(chǔ)空間較小,但表示數(shù)的范圍也較小。第一節(jié)數(shù)據(jù)類型3.單精度數(shù)(Single)單精度數(shù)是帶小數(shù)點(diǎn)的實(shí)數(shù),有效數(shù)字為7位,在機(jī)器內(nèi)用4個(gè)字節(jié)存儲(chǔ)。單精度數(shù)有多種表示形式:±n.n(小數(shù)形式)、±nE±m(xù)(指數(shù)形式)、±n.nE±m(xù)(指數(shù)形式)。例如:123.45、0.12345E+3、123.45!都是同值的單精度數(shù)。如果某個(gè)數(shù)的有效數(shù)字位數(shù)超過7位,當(dāng)把它定義為單精度變量時(shí),超出的部分會(huì)自動(dòng)四舍五入。4.雙精度數(shù)(Double)雙精度數(shù)也是帶小數(shù)點(diǎn)的實(shí)數(shù),有效數(shù)字為15或16位,在機(jī)器內(nèi)用8個(gè)字節(jié)存儲(chǔ)。通常以指數(shù)形式表示,指數(shù)部分用“D”或“d”表示。在VB中數(shù)尾常加“#”表示雙精度數(shù)據(jù),也可省略。如-374.778#,5.678D+2,-2.67e+3#。第一節(jié)數(shù)據(jù)類型5.貨幣型數(shù)據(jù)(Currency)貨幣型數(shù)據(jù)是為是一種專門為處理貨幣而設(shè)計(jì)的數(shù)據(jù)類型,是一種特殊的小數(shù)。它的精度要求較高,用8個(gè)字節(jié)存儲(chǔ),保留小數(shù)點(diǎn)右邊4位和小數(shù)點(diǎn)左邊15位,如果數(shù)據(jù)定義為貨幣型,且其小數(shù)點(diǎn)后超過4位,那么超過的部分自動(dòng)四舍五入。在VB中數(shù)尾常加“@”表示貨幣型數(shù)據(jù)。如3.4@,565@。6.字節(jié)型數(shù)據(jù)(Byte)字節(jié)型數(shù)據(jù)用來存儲(chǔ)二進(jìn)制數(shù),是范圍在0~255之間的無符號(hào)整數(shù),不能表示負(fù)數(shù),在機(jī)器內(nèi)用一個(gè)字節(jié)存儲(chǔ)。Byte是從0-255的無符號(hào)類型。第一節(jié)數(shù)據(jù)類型(二)日期型數(shù)據(jù)(Date)日期型數(shù)據(jù)是為表示日期設(shè)置的,在機(jī)器內(nèi)用8個(gè)字節(jié)存儲(chǔ)。表示方法是以“#”括起來的字面上被認(rèn)為是日期和時(shí)間的字符,例如:#04/10/2008#、#2004-08-10#、#September1,2004#、#2004-9-1013:30:15#。(三)邏輯型數(shù)據(jù)(Boolean)邏輯型數(shù)據(jù)是用來表示邏輯判斷結(jié)果的,只有真(True)和假(False)兩個(gè)值,在機(jī)器內(nèi)用2個(gè)字節(jié)存儲(chǔ)。邏輯數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù)時(shí),真轉(zhuǎn)換為-1,假轉(zhuǎn)換為0;其他類型數(shù)據(jù)轉(zhuǎn)換為邏輯數(shù)據(jù)時(shí),非0數(shù)轉(zhuǎn)換為真,0轉(zhuǎn)換為假。第一節(jié)數(shù)據(jù)類型(四)字符型數(shù)據(jù)字符型數(shù)據(jù)是用雙引號(hào)括起來的一串字符,用來定義一個(gè)計(jì)算機(jī)字符組成的序列。例如:“VisualBasic”、“贛南師院”、“123.456”、“everyone”、“”(空字符串)。注意:“”表示空字符串,而“”表示的是有一個(gè)空格的字符串;如字符串中本身含有雙引號(hào),則用兩個(gè)連續(xù)的雙引號(hào)表示。例:表示字符串計(jì)算機(jī)”ABC,正確的表示形式為:“計(jì)算機(jī)”、”ABC”(五)對(duì)象型數(shù)據(jù)(Object)對(duì)象型數(shù)據(jù)主要以變量形式存在,可以引用應(yīng)用程序中或某些其他應(yīng)用程序中的對(duì)象。例如:DimobjDbAsObjectSetobjDb=OpenDatabase("c:\Vb6\student.mdb")第一節(jié)數(shù)據(jù)類型(六)變體型數(shù)據(jù)(Variant)變體型是一種通用的,可變的數(shù)據(jù)類型,它可以表示以上任何一種數(shù)據(jù)類型。它是聲明變量時(shí)的默認(rèn)類型。Variant數(shù)據(jù)類型能夠存儲(chǔ)所有系統(tǒng)定義類型的數(shù)據(jù)。假設(shè)定義a為變體型變量,在變量a中可以存放任何類型的數(shù)據(jù),例如:

a=“-BASIC”--‘存放一個(gè)字符串

a=10-‘存放一個(gè)整數(shù)

a=20.5-‘存放一個(gè)實(shí)數(shù)

a=#08/15/2003#‘存放一個(gè)日期型數(shù)據(jù)第一節(jié)數(shù)據(jù)類型二、自定義數(shù)據(jù)類型

VB不僅提供了系統(tǒng)定義的以上基本數(shù)據(jù)類型,也允許用戶自己定義數(shù)據(jù)類型,它由若干個(gè)基本數(shù)據(jù)類型組成。自定義類型必須通過Type語(yǔ)句來聲明。格式:

Type數(shù)據(jù)類型名元素名As類型名元素名As類型名元素名As類型名

…EndType第一節(jié)數(shù)據(jù)類型例如:對(duì)于一個(gè)學(xué)生的“學(xué)號(hào)”、“姓名”、“性別”、“年齡”、“入學(xué)成績(jī)”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個(gè)新的數(shù)據(jù)類型(如Student類型)。

TypeStudent

XhAsSting

XmAsString*10‘長(zhǎng)度為10

XbAsString

NlAsIntegerScoreAsSingle

EndType第二節(jié)常量與變量在VB程序中,不同類型的數(shù)據(jù)既可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。常量:在程序運(yùn)行過程中值始終保持不變的量;變量:在程序運(yùn)行過程中其值可以改變的量。第二節(jié)常量與變量一、常量程序運(yùn)行過程中,其值始終不變的量稱為常量。在VB中常量有直接常量和符號(hào)常量?jī)深悺?/p>

(一)直接常量直接常量是在程序代碼中,以明顯的方式給出的數(shù)據(jù),可直接反映其數(shù)據(jù)類型;也可在常數(shù)值后緊跟類型符表明常數(shù)的數(shù)據(jù)類型。例如:字符串常量:“vb”、“9823”

數(shù)值常量:123、332&、11.35、1.23E3

邏輯常量:True、False

日期常量:#03/22/2008##10:12:30#

在VB中還可以使用八進(jìn)制和十六進(jìn)制形式表示直接常量。八進(jìn)制數(shù)以&O打頭,十六進(jìn)制數(shù)已&H打頭,如&O67,&H9AB4等。第二節(jié)常量與變量

(二)符號(hào)常量符號(hào)常量又分為兩種:系統(tǒng)內(nèi)部定義常量和用戶定義常量。

1.系統(tǒng)內(nèi)部定義常量?jī)?nèi)部或系統(tǒng)定義的常量是VB和控件提供的。這些常量可與應(yīng)用程序的對(duì)象、方法和屬性一起使用,在代碼中可以直接使用它們,如:

Text1.ForeColor=vbRed2.用戶定義常量有時(shí)用戶需要?jiǎng)?chuàng)建自己的符號(hào)常量。用戶定義常量使用Const語(yǔ)句來給常量分配名字、值和類型。語(yǔ)法為:

[Public|Private]Const<常量名>[As<數(shù)據(jù)類型>]=<表達(dá)式>…

其中,<表達(dá)式>由數(shù)值常量、字符串等常量及運(yùn)算符組成,可以包含前面定義過的常量,但不能使用函數(shù)調(diào)用。第二節(jié)常量與變量例如,以下都是正確的用戶定義常量:

ConstPI=3.14159265358979PublicConstAMaxAsInteger=9ConstYDate=#4/30/2008#

二、變量在程序運(yùn)行過程中,其值可以改變的量稱為變量。變量由名字和數(shù)據(jù)類型確定。

(一)聲明變量用語(yǔ)句聲明,格式如下:

Dim/Public/Private/Static變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]…]第二節(jié)常量與變量變量可被聲明為在不同范圍內(nèi)使用,如下所示:(1)普通局部變量:聲明此類變量的格式如下:Dim變量名[As數(shù)據(jù)類型名](2)靜態(tài)局部變量:聲明此類變量的格式如下:Static變量名[As數(shù)據(jù)類型名](3)模塊變量:一般在聲明此類變量時(shí),使用如下格式:Private變量名[As數(shù)據(jù)類型名](4)全局變量:一般在聲明此類變量時(shí),使用如下格式:Public變量名[As數(shù)據(jù)類型名]第二節(jié)常量與變量

(二)變量賦值在聲明一個(gè)變量后,要先給變量賦上一個(gè)合適的值才能夠使用。給變量賦值的格式如下:

變量名=表達(dá)式可以使用一個(gè)表達(dá)式的數(shù)值來給某個(gè)變量賦值。一個(gè)普通的常量、變量均屬于簡(jiǎn)單的表達(dá)式。例如,給一個(gè)變量X,可以使用如下幾種表達(dá)式進(jìn)行賦值:

X=5X=YX=X+1第二節(jié)常量與變量(三)引用變量在需要使用變量中的值時(shí),必須引用變量的名字來取出其中存放的數(shù)值。例如,將變量Y的值賦給變量X,就必須引用變量Y,將其中的數(shù)值取出賦給X,也即將變量Y的值存放在變量X的內(nèi)存空間中。使用代碼如下:

X=Y第三節(jié)運(yùn)算符和表達(dá)式運(yùn)算符是代表VB某種運(yùn)算功能的符號(hào)。VB程序會(huì)按運(yùn)算符的含義和運(yùn)算規(guī)則執(zhí)行實(shí)際的運(yùn)算操作。由運(yùn)算符將相關(guān)的常量、變量、函數(shù)等連接起來的式子即為表達(dá)式。

一、運(yùn)算符

VB程序會(huì)按運(yùn)算符的含義和運(yùn)算規(guī)則執(zhí)行實(shí)際的運(yùn)算操作。VB中的運(yùn)算符包括:賦值運(yùn)算符、算術(shù)運(yùn)算符、連接運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符。第三節(jié)運(yùn)算符和表達(dá)式

(一)賦值運(yùn)算符賦值運(yùn)算符是用于給變量設(shè)置值,數(shù)組或?qū)ο蟮膶傩再x值的,用“=”表示。格式:Variable=表達(dá)式其中:Variable可以是變量,數(shù)組或?qū)ο蟮膶傩浴1磉_(dá)式可以是常量,變量或表達(dá)式,但必須有確定的值。例如:

DimaAsString*5a=”China”‘將”China”賦給字符型變量a第三節(jié)運(yùn)算符和表達(dá)式(二)算術(shù)運(yùn)算符算術(shù)運(yùn)算符主要用于算術(shù)運(yùn)算。VB中有8個(gè)算術(shù)運(yùn)算符,見下表:運(yùn)算符含義示例結(jié)果優(yōu)先級(jí)^乘方5^2251-負(fù)號(hào)-7-72*乘3*7213/除2/50.43\整除(直接取整)2\504Mod取模(求余)7Mod215+加4+8126-減2.3-11.36第三節(jié)運(yùn)算符和表達(dá)式(三)連接運(yùn)算符連接運(yùn)算符主要用于兩個(gè)字符串的連接,見下表:運(yùn)算符含義示例結(jié)果&連接兩個(gè)字符串“China”&”jiangxi”“Chinajiangxi”+計(jì)算和,也可連接字符串“12”+”34”“1234”第三節(jié)運(yùn)算符和表達(dá)式(四)關(guān)系運(yùn)算符關(guān)系運(yùn)算符用來確定兩個(gè)表達(dá)式之間的關(guān)系。關(guān)系運(yùn)算符含義示例結(jié)果=等于“abc”=”ABD”False>大于(13+5)>2True>=大于等于“abc”>=”abd”False<小于“abc”<”abd”True<=小于等于“123”<=”4”True<>不等于“a”<>”A”TrueLike字符串匹配“abcde”Like”*cd*”TrueIs對(duì)象引用比較第三節(jié)運(yùn)算符和表達(dá)式(五)邏輯運(yùn)算符邏輯運(yùn)算符主要用于邏輯運(yùn)算,其操作數(shù)經(jīng)常是關(guān)系表達(dá)式或邏輯型數(shù)據(jù)。運(yùn)算符含義說明示例結(jié)果優(yōu)先級(jí)Not取反操作數(shù)為真時(shí),結(jié)果為假,否則為真Not(3>5)True1And與兩個(gè)操作數(shù)都為真時(shí),結(jié)果為真,否則為假(“a”>”b”)And(3<5)False2Or或兩個(gè)操作數(shù)之一或全為真時(shí),結(jié)果為真,否則為假(2<>3)Or(“x”>”y”)True3Xor異或兩個(gè)操作數(shù)為一真一假時(shí),結(jié)果為真,否則為假(6=7)Xor(7>2)True3Eqv等價(jià)兩個(gè)操作數(shù)相同時(shí),結(jié)果為真,否則為假(3>5)Eqv(“a”<”b”)False4Imp蘊(yùn)涵第一操作數(shù)為真,第二操作數(shù)為假時(shí),結(jié)果為假,否則為真(5=5)Imp(10>20)False5第三節(jié)運(yùn)算符和表達(dá)式二、表達(dá)式由運(yùn)算符將常量、變量、函數(shù)等連接起來的有意義的式子即為表達(dá)式。(一)表達(dá)式書寫規(guī)則在VB中書寫表達(dá)式時(shí),應(yīng)遵循下列規(guī)則:1.乘號(hào)不能省略。2.不能使用方括號(hào)或花括號(hào),只能用圓括號(hào)。圓括號(hào)可以出現(xiàn)多個(gè),但要配對(duì)。3.表達(dá)式從左至右在同一基準(zhǔn)上寫,無高低、大小之分。第三節(jié)運(yùn)算符和表達(dá)式(二)運(yùn)算符優(yōu)先級(jí)當(dāng)一個(gè)表達(dá)式中出現(xiàn)多種不同類型的運(yùn)算符時(shí),不同類型的運(yùn)算符優(yōu)先級(jí)別如下:函數(shù)運(yùn)算優(yōu)先于括號(hào)算術(shù)運(yùn)算符字符運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符優(yōu)先于優(yōu)先于優(yōu)先于優(yōu)先于第四節(jié)常用內(nèi)部函數(shù)內(nèi)部函數(shù)是語(yǔ)言系統(tǒng)本身把一些常用的操作事先編寫成一段程序代碼并封裝起來,用戶通過函數(shù)名調(diào)用這段程序并返回一個(gè)函數(shù)值。在VB6.0中,有兩類函數(shù):內(nèi)部函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。對(duì)于VB的內(nèi)部函數(shù),按其功能可分為數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、判斷函數(shù)、日期時(shí)間函數(shù)等。第四節(jié)常用內(nèi)部函數(shù)一、數(shù)學(xué)函數(shù):數(shù)學(xué)函數(shù)主要用于各種數(shù)學(xué)運(yùn)算函數(shù)含義示例結(jié)果Abs返回?cái)?shù)的絕對(duì)值A(chǔ)bs(-3.2)3.2Atn返回弧度的反正切值A(chǔ)tn(1).785398163397448Cos返回弧度的余弦值Cos(1).54030230586814Exp返回e的指定次冪Exp(1)2.71828182845905Fix返回?cái)?shù)的整數(shù)部分(直接取整)Fix(-50.6)-50Int返回不大于給定數(shù)的最大整數(shù)Int(-50.6)-51Log返回?cái)?shù)的自然對(duì)數(shù)Log(1)0Rnd返回0~1之間的隨機(jī)數(shù)Rnd0~1之間的隨機(jī)數(shù)Sgn返回?cái)?shù)的符號(hào)值Sgn(-2)-1Sin返回弧度的正弦值Sin(1).841470984807897Sqr返回?cái)?shù)的平方根值Sqr(9)3Tan返回弧度的正切值Tan(1)1.5574077246549第四節(jié)常用內(nèi)部函數(shù)二、字符串函數(shù):用于處理字符串信息。若函數(shù)的返回值為字符型數(shù)據(jù),則常在函數(shù)名后加"$"字符。函數(shù)含義示例結(jié)果Instr([N1,]C1,C2[,M])返回C2在C1中首次出現(xiàn)的位置(從N1開始)Instr(4,”xxpxxpXp”,“p”)6*InstrRev(C1,C2[,N1][,M])與Instr類似,只從尾部查找Instr(“ASDFDFDFSDSF”)5*Lcase(C)將C從大寫字母變?yōu)樾懽帜窵CASE(“Hello”)“hello”Left$(C,N)將C中左邊起取N個(gè)字符Left$(“World”,2)“Wo”Len(C)返回C的長(zhǎng)度Len(“name”)4Ltrim$(C)刪除C左端的空格Ltrim$(“name”)“name”*Replace(C,C1,C2[,N1][,N2][,M])在C中從1或N1開始C2替換C1共N2次Replace(“asabababsadb”,“ab”,“*”,2)“as***sadb”第四節(jié)常用內(nèi)部函數(shù)Right$(C,N)從C中右邊起取N個(gè)字符Right$(“World”,2)“1d”Rtrim$(C)刪除C右端的空格Rtrim$(“name”)“name”Space$(N)返回N個(gè)空組成的字符串Space$(3)“”StrComp(C1,C2[,M])返回C1,C2比較的結(jié)果,相等時(shí)為0,小于時(shí)為-1,大于時(shí)為1StrComp(“AB”,“ab”)-1String$(N,C)返回N個(gè)C中第一個(gè)字符組成的字符串String$(2,“xyz”)“xx”*StrReverse(C)將C逆序排列StrReverse(“xyz”)“zyx”Trim(C)刪除C的左右空格Trim(“na”)“na”*Ucase(C)從C中小寫字母改為大寫字母Ucase(“xyz”)“XYZ”第四節(jié)常用內(nèi)部函數(shù)三、轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)主要用于轉(zhuǎn)換。分類型轉(zhuǎn)換函數(shù)和數(shù)制轉(zhuǎn)換函數(shù)兩類。(一)類型轉(zhuǎn)換函數(shù)類型轉(zhuǎn)換函數(shù)主要用來實(shí)現(xiàn)不同類型數(shù)據(jù)之間的轉(zhuǎn)換。分為強(qiáng)制類型轉(zhuǎn)換函數(shù),ASCII碼轉(zhuǎn)換函數(shù)和直接類型轉(zhuǎn)換函數(shù)。1.強(qiáng)制類型轉(zhuǎn)換函數(shù):是將一個(gè)表達(dá)式的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換成要求的數(shù)據(jù)類型。2.ASCII碼轉(zhuǎn)換函數(shù):是用于ASCII碼值和字符之間轉(zhuǎn)換的函數(shù)。函數(shù)功能示例結(jié)果Asc返回字符串首字符的ASCII碼值A(chǔ)sc(“China”)67Chr返回一個(gè)值對(duì)應(yīng)的ASCII碼字符Chr(100)“d”第四節(jié)常用內(nèi)部函數(shù)3.直接類型轉(zhuǎn)換函數(shù):是實(shí)現(xiàn)字符型和數(shù)值型之間類型轉(zhuǎn)換的函數(shù)。函數(shù)功能示例結(jié)果Str將數(shù)值型轉(zhuǎn)換為字符型Str(323.1)“323.1”Val返回包含于字符串之內(nèi)的數(shù)字(忽略非數(shù)字開始的字符,但可識(shí)別進(jìn)位制符&O和&H)Val(“3231-56”)Val(“&HFFFF”)3231-1第四節(jié)常用內(nèi)部函數(shù)(二)數(shù)制轉(zhuǎn)換函數(shù)數(shù)制轉(zhuǎn)換函數(shù)是將一個(gè)數(shù)值表達(dá)式或字符型表達(dá)式轉(zhuǎn)換為八進(jìn)制或十六進(jìn)制數(shù)值的函數(shù)。四、判斷函數(shù)判斷函數(shù)主要用于判斷,其結(jié)果必為邏輯型數(shù)據(jù)。函數(shù)功能示例結(jié)果IsDate(表達(dá)式)判斷表達(dá)式是否為日期型IsDate(#1985-3-21#)TrueIsEmpty(變量)判斷變量是否被初始化IsEmpty(Null)FalseIsNumeric(表達(dá)式)判斷表達(dá)式是否為數(shù)值型IsNumeric(45.23)TrueIif(表達(dá)式,N1,N2)判斷表達(dá)式的真假,如為真,返回N1的值,否則返回N2的值Iif(X>=60,“合格”,“不合格”)取決于X的值,X>=60時(shí),返回“合格”,否則返回”不合格”第四節(jié)常用內(nèi)部函數(shù)五、日期和時(shí)間函數(shù)日期函數(shù)用于進(jìn)行日期和時(shí)間的處理。函數(shù)名功能實(shí)例結(jié)果Date[()]返回系統(tǒng)日期Date$()2008-4-28Day(C|N)返回日期代號(hào)(1~31)Day(“08,04,28”)28Hour(C|N)返回小時(shí)(0~24)Hour(#1:12:20PM#)13(下午)Minute(C|N)返回分鐘(0~59)Minute(#1:12:20PM#)12Month(C|N)返回月份(1~12)Month(“08,04,28”)4Second(C|N)返回秒(0~59)Second(#1:12:20PM#)20Now()返回系統(tǒng)日期和時(shí)間Now2008/4/2810:40:01PMTime[()]返回系統(tǒng)時(shí)間Time10:40:01PMWeekDay(C|N)返回星期數(shù)(1~7)星期日為1,星期一為2WeekDay(“08,04,28”)2Year(C|N)返回年代號(hào)(1753~2078)Year(365)返回相對(duì)于1899/12/30后365天的年代號(hào)1900年第四節(jié)常用內(nèi)部函數(shù)六、其他函數(shù)(一)格式輸出函數(shù)Format()(二)Shell()函數(shù)(三)Dir[(路徑[,屬性])]第五節(jié)編碼規(guī)則一、VB的語(yǔ)言元素(一)字符集VB的字符集包括:數(shù)字,英文字母和特殊符號(hào)。數(shù)字

:0—9英文字母:26個(gè)英文字母的大小寫

a—z和

A—Z特殊字符:!#$%&@^'()*+,-./\?<=>[]_{}︱~:;〞space注:在代碼窗口輸入程序時(shí),除漢字外,其余符號(hào)不能以全角或中文方式輸入,而只能以英文方式鍵入作為語(yǔ)言成分的字符。第五節(jié)編碼規(guī)則(二)詞匯集詞匯符號(hào)是程序設(shè)計(jì)語(yǔ)言中具有獨(dú)立意義的最基本結(jié)構(gòu)。詞匯符號(hào)包括:運(yùn)算符、界符、關(guān)鍵字、標(biāo)識(shí)符、各類型常數(shù)。1.運(yùn)算符和界符算術(shù)運(yùn)算符:

+

-

*

/

\

MOD

^字符運(yùn)算符:

&

+比較運(yùn)算符:

>

>=

<

<=

=

<>邏輯運(yùn)算符:

NOT

AND

OR

XOR

EQV

IMP其它界符

:!#

$%

@(

)

,

.

'

?

[

]_{

}︱~

:;〞space2.關(guān)鍵字又稱保留字,是VB保留下來的作為程序中有固定含義的標(biāo)識(shí)符3.標(biāo)識(shí)符標(biāo)識(shí)符是程序員為變量、常量、數(shù)據(jù)類型、過程、函數(shù)、類等定義的名字。利用標(biāo)識(shí)符可以完成對(duì)它們的引用。第五節(jié)編碼規(guī)則二、編碼規(guī)則(一)VB代碼書寫規(guī)則1.程序中不區(qū)分字母的大小寫,Ab

與AB等效;2.系統(tǒng)對(duì)用戶程序代碼進(jìn)行自動(dòng)轉(zhuǎn)換:對(duì)于VB中的關(guān)鍵字,首字母被轉(zhuǎn)換成大寫,其余轉(zhuǎn)換成小寫若關(guān)鍵字由多個(gè)英文單詞組成,則將每個(gè)單詞的首字母轉(zhuǎn)換成大寫對(duì)于用戶定義的變量、過程名,以第一次定義的為準(zhǔn),以后輸入的自動(dòng)轉(zhuǎn)換成首次定義的形式第五節(jié)編碼規(guī)則(二)語(yǔ)句書寫規(guī)則1.在同一行上可以書寫多行語(yǔ)句,語(yǔ)句間用冒號(hào)(:)分隔2.單行語(yǔ)句可以分多行書寫,在本行后加續(xù)行符:空格和下劃線

3.一行允許多達(dá)255個(gè)字符第六節(jié)綜合應(yīng)用例3.1使用數(shù)學(xué)函數(shù)的事例。編寫的窗體click事件過程代碼如下:PrivateSubform_click()x=-123y=456.789a=Abs(x)-Sgn(x)*xb=Int(y/100)'求百位數(shù)

c=y-Int(y/100)*100'剔除百位數(shù)

d=Int(y*10+0.5)/10'舍入到小數(shù)后第一位

Printa,b,c,dEndSub運(yùn)行程序后單擊窗體,如圖所示:第六節(jié)綜合應(yīng)用例3.2使用字符串函數(shù)示例。先從字符串a(chǎn)中找出某個(gè)指定字符(本例為空格),再以此字符為界拆分成兩個(gè)字符串。編寫的窗體單擊過程代碼如下:

PrivateSubForm_click()DimaAsString,bAsString,cAsString

DimnAsStringa="visualbasic"n=InStr(a,"")'查找空格位置

b=Left(a,n-1)'取左邊部分

c=Mid(a,n+1)'取右邊部分

PrintbPrintcEndSub第六節(jié)綜合應(yīng)用例3.3使用轉(zhuǎn)換函數(shù)的示例。編寫的窗體click事件過程代碼如下:PrivateSubForm_click()x="123":y=123a=Chr(Asc(x)+5)b=Str(Val(x)+5)c=Val(Str(y)+"5")printaprintbprintcEndSub第六節(jié)綜合應(yīng)用例3.4給定一個(gè)兩位正整數(shù)(如36),要求交換個(gè)位數(shù)和十位數(shù)的位置,把處理后的數(shù)顯示在窗體上。編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位數(shù)

b=xMod10'求個(gè)位數(shù)

c=b*10+a'生成新的數(shù)

Print"處理后的數(shù):";cEndSub本章小結(jié)1.VB的數(shù)據(jù)類型比較豐富,可以分為兩大類:基本數(shù)據(jù)類型和用戶自定義類型。本章詳細(xì)闡述了VB使用的基本數(shù)據(jù)類型。2.在VB程序中,不同類型的數(shù)據(jù)既可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。還詳細(xì)闡述了變量的作用域,即變量并不是在任何地方都可以使用的,要注意它的有效范圍。3.VB程序會(huì)按運(yùn)算符的含義和運(yùn)算規(guī)則執(zhí)行實(shí)際的運(yùn)算操作。本結(jié)詳細(xì)闡述了VB使用的常用運(yùn)算符及表達(dá)式的組成。4.在VB6.0中,有兩類函數(shù):內(nèi)部函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。函數(shù)是運(yùn)算中必不可少的工具,正如數(shù)學(xué)中提到的函數(shù)一樣,在VB6.0中有可以直接使用的內(nèi)部函數(shù),也可以根據(jù)需要自己定義,本章主要學(xué)會(huì)內(nèi)部函數(shù)的使用?;仡檾?shù)據(jù)類型1常量與變量2運(yùn)算符與表達(dá)式3常用內(nèi)部函數(shù)4第四章程序結(jié)構(gòu)程序結(jié)構(gòu)第一節(jié)順序結(jié)構(gòu)第二節(jié)選擇結(jié)構(gòu)第三節(jié)循環(huán)結(jié)構(gòu)本章目錄1、掌握數(shù)據(jù)的輸入輸出,使用順序結(jié)構(gòu)開發(fā)程序;2、使用選擇結(jié)構(gòu)開發(fā)程序;3、使用循環(huán)結(jié)構(gòu)開發(fā)程序。教學(xué)目標(biāo)

選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用。重點(diǎn)

選擇結(jié)構(gòu)的嵌套及多重循環(huán)結(jié)構(gòu)

難點(diǎn)多用,多練,舉一反三,學(xué)以致用學(xué)習(xí)方法算法的概念為解決一個(gè)問題而采取的方法和步驟,就稱為“算法”。方法1:1+2,+3,+4,一直加到100加99次方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50加51次對(duì)同一個(gè)問題,可有不同的解題方法和步驟例:求

2.3算法的特性有窮性:包含有限的操作步驟。確定性:算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的。

有零個(gè)或多個(gè)輸入:輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。有一個(gè)或多個(gè)輸出:算法的目的是為了求解,“解”就是輸出。

有效性:算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。1.一個(gè)算法應(yīng)該具有以下特點(diǎn):2.三種基本結(jié)構(gòu)

Bohra和Jacopini提出了以下三種基本結(jié)構(gòu):

順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元。第一節(jié)順序結(jié)構(gòu)在VB中,有三種結(jié)構(gòu)可以控制程序的流程,分別是順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。它們是結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)。順序結(jié)構(gòu)是最簡(jiǎn)單的一種程序結(jié)構(gòu),按照語(yǔ)句的書寫順序執(zhí)行的結(jié)構(gòu),只有一個(gè)入口和一個(gè)出口。ABC一、幾種基本語(yǔ)句

一.賦值語(yǔ)句形式:[LET]變量名=表達(dá)式作用:將表達(dá)式的值賦值給變量名.

一般用于給變量賦值或?qū)丶O(shè)定屬性值.

例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”

當(dāng)表達(dá)式的類型與變量的類型不一致時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度

iA%=10/3iA中的結(jié)果為3

注意:雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用“=”表示,VB系統(tǒng)會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào)。下面看幾個(gè)例子:DimAl,A2,A3,A4A1="您好,"'給AI賦常量A2=Al'給A2賦變量的值A(chǔ)3=A2&"同志"'給A3賦表達(dá)式的值,“您好,同志”Al=10:A2=8:A3=-4A4=Sqr(A2*A2-4*Al*A3)'給A4賦函數(shù)值'給文本框Text1的文本屬性賦值,在文本框中顯示字符串Text1.text="您好!"‘給按鈕Command1的顯示屬性賦值,使其不可見Command1.Visible=FalseDimstrNameAsString*40,strS1AsString*40相應(yīng)的語(yǔ)句如下:strName=

InputBox(“請(qǐng)輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以:strS1=“請(qǐng)輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=

InputBox(strS1,“輸入框”,,100,100)當(dāng)鍵盤輸入“王曉明”后,變量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論