《vb程序設(shè)計(jì)》
《VB語(yǔ)言程序設(shè)計(jì)(第2版)》是2009年電子工業(yè)出版社出版的圖書(shū),作者是林卓然。本書(shū)主要介紹可視化程序設(shè)計(jì)的基本知識(shí)和編程方法。
本書(shū)以visual basic 6.0為語(yǔ)言背景,以程序結(jié)構(gòu)為主線,介紹可視化程序設(shè)計(jì)的基本知識(shí)和編程方法。內(nèi)容包括:認(rèn)識(shí)visual basic,程序設(shè)計(jì)基礎(chǔ),順序結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)程序設(shè)計(jì),循環(huán)結(jié)構(gòu)程序設(shè)計(jì),數(shù)組,過(guò)程,程序調(diào)試與錯(cuò)誤處理,數(shù)據(jù)文件與文件管理,菜單及對(duì)話框,繪圖及其他常用控件等。本書(shū)概念清晰,層次分明,敘述簡(jiǎn)明易懂,注重實(shí)用性和可操作性。各章配有精心設(shè)計(jì)的習(xí)題和編程及上機(jī)調(diào)試題。本書(shū)為任課教師免費(fèi)提供電子教案及習(xí)題參考答案。本書(shū)適合作為高等學(xué)校計(jì)算機(jī)程序設(shè)計(jì)教材,也可作為各類vb培訓(xùn)班及全國(guó)計(jì)算機(jī)等級(jí)考試讀者的學(xué)習(xí)參考書(shū)。
控件數(shù)組是Visual Basic中的一個(gè)名詞,它是一組具有相同名稱和類型的控件的集合,通過(guò)各自的編號(hào)(下標(biāo))來(lái)識(shí)別,并且可以共享事件。
在設(shè)計(jì)時(shí),有三種辦法創(chuàng)建控件數(shù)組:更改控件的Index屬性、將已有的控件復(fù)制到同一窗體中、使多個(gè)同類型的控件的名稱(Name屬性)相同。更改Index屬性選擇一個(gè)控件,按F4打開(kāi)“屬性”面板,找到“Index”屬性,將其更改為一個(gè)0和32767之間(包括0和32767)的且未被用于其他控件索引值的整數(shù),即可創(chuàng)建一個(gè)以原控件名稱為名稱的控件數(shù)組。復(fù)制已有控件若已有一控件名為Command,右擊該控件,單擊快捷菜單中的“復(fù)制”,再右擊控件所在窗體(或其中的一個(gè)類似Frame的容器控件),單擊快捷菜單中的“粘貼”,VB會(huì)彈出一個(gè)對(duì)話框,顯示“已經(jīng)有一個(gè)控件為 'Command'。創(chuàng)建一個(gè)控件數(shù)組嗎?”單擊“是”按鈕,就可創(chuàng)建一個(gè)名稱(Name屬性)為“Command”的控件數(shù)組,被復(fù)制的控件為Command(0),粘貼的控件為Command(1)。使控件名相同若已有一控件名為Command,將另一同類型控件的Name屬性改為“Command”后,VB也會(huì)彈出一個(gè)對(duì)話框,單擊“是”即可創(chuàng)建一控件數(shù)組。運(yùn)行時(shí)增減對(duì)象添加對(duì)象在VB中,不能在運(yùn)行時(shí)直接創(chuàng)建一個(gè)原先不存在的控件數(shù)組,但可以使用Load函數(shù)為已存在的控件數(shù)組添加同類型的控件。假設(shè)已有一個(gè)控件數(shù)組名為“Command”,數(shù)組中只有一個(gè)對(duì)象“Command(0)”,在運(yùn)行時(shí),可以通過(guò)下面的代碼增加一個(gè)對(duì)象“Command(1)”。PrivateSubCommand_Click(IndexAsInteger)'控件數(shù)組中控件的點(diǎn)擊事件LoadCommand(1)'添加Command(1)Command(1).Top=0'將Command(1)移至頂端Command(1).Visible=True'將Command(1)設(shè)置為可見(jiàn)EndSub說(shuō)明:此處的Load函數(shù)的語(yǔ)法如下:Load Object (Index As Integer)Load函數(shù)參數(shù)參數(shù)描述Object必選,對(duì)象表達(dá)式,要添加控件的控件數(shù)組名稱。Index必選,數(shù)值表達(dá)式,0~32767的一個(gè)整數(shù),被添加的控件在控件數(shù)組中的索引值(Index屬性),該值必須未被引用。運(yùn)行時(shí)在一個(gè)控件數(shù)組中添加了新的控件后,新控件除Index、TabIndex和Visible屬性外,其余屬性與該控件數(shù)組中Index屬性最小的控件的相應(yīng)屬性完全相同。而Index屬性在Load函數(shù)中指定,TabIndex屬性取VB規(guī)定的默認(rèn)數(shù)值(比其他任何控件都大),Visible為False。所以需要改變新控件的Left或Top,以及Visible屬性后才能看到它。這里的代碼僅設(shè)計(jì)用于添加Command(1),即使Command中的按鈕被點(diǎn)擊兩次,也不能添加Command(2),而是會(huì)返回“對(duì)象已經(jīng)加載”的錯(cuò)誤。為了不斷添加控件,可以使用下面的代碼。PrivateSubCommand_Click(IndexAsInteger)'控件數(shù)組中控件的點(diǎn)擊事件IfCommand.UBound=32767ThenExitSubLoadCommand(Command.UBound+1)'添加控件Command(Command.UBound).Top=Command.UBound*150'移動(dòng)新控件Command(Command.UBound).Visible=True'將新控件設(shè)置為可見(jiàn)EndSub控件數(shù)組的UBound屬性返回該控件數(shù)組中控件的最大下標(biāo)(索引值),添加索引值為Command.UBound+1(不大于32767)的控件數(shù)組元素可以保證不發(fā)生“對(duì)象已經(jīng)加載”的錯(cuò)誤。但是,由于控件數(shù)組中每個(gè)控件的索引值并不一定是連續(xù)的,即可以只添加Command(1)和Command(3)而不添加Command(2),所以即使控件數(shù)組最大索引值為32767,該控件數(shù)組也不一定有32767個(gè)對(duì)象。刪除對(duì)象運(yùn)行時(shí)可以使用Unload函數(shù)刪除控件數(shù)組中運(yùn)行時(shí)創(chuàng)建的控件,但設(shè)計(jì)時(shí)創(chuàng)建的控件不能刪除。如:UnloadCommand(1)Unload函數(shù)語(yǔ)法與Load函數(shù)語(yǔ)法相似。屬性概述每個(gè)控件數(shù)組本身都有4個(gè)屬性,這4個(gè)屬性都是設(shè)計(jì)時(shí)無(wú)效、運(yùn)行時(shí)只讀的;而一個(gè)單獨(dú)的控件還有和控件數(shù)組相關(guān)的Index屬性。Count屬性O(shè)bject.Count As Long返回控件數(shù)組中的元素個(gè)數(shù)。Item屬性O(shè)bject.Item (IndexAs Integer) As Object返回控件數(shù)組中指定下標(biāo)的控件,相當(dāng)于Object(IndexAs Integer) As Object。
LBound和UBound屬性O(shè)bject.LBound As IntegerObject.UBound As Integer返回控件數(shù)組中下標(biāo)的最小值(LBound)或最大值(UBound)。
Index屬性O(shè)bject.Index As Integer(0≤Object.Index≤32767)這個(gè)屬性應(yīng)用于控件數(shù)組中的一個(gè)控件,作用是返回或設(shè)計(jì)時(shí)設(shè)置控件在其控件數(shù)組中的下標(biāo),僅當(dāng)Object屬于某一控件數(shù)組時(shí)有效。