版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第8章 列表框、組合框和數(shù)組,(時(shí)間:2次課,4學(xué)時(shí)),第8章 列表框、組合框和數(shù)組,教學(xué)提示:在第5章中,介紹了單選按鈕、復(fù)選按鈕和框架并介紹了分支程序設(shè)計(jì)的基本思想。本章將繼續(xù)介紹提供用戶選擇的控件列表框和組合框。還將介紹數(shù)組的使用,在學(xué)習(xí)中要注意列表框和組合框的特殊屬性和數(shù)組的定義和使用。 教學(xué)目標(biāo):掌握用Dim語句定義數(shù)組,數(shù)組元素的輸入、輸出和引用;掌握控件數(shù)組的建立和事件過程的編寫;掌握列表框和組合框的主要屬性和使用方法。,第8章 列表框、組合框和數(shù)組,8.1 認(rèn)識(shí)列表框和組合框 8.2 列表框 8.3 組合框 8.4 數(shù)組 8.5 綜合運(yùn)用,8.1 認(rèn)識(shí)列表框和組合框,列表框和組
2、合框都能提供一個(gè)項(xiàng)目列表,用戶可以從中選擇一項(xiàng)或多項(xiàng)。 例8.1 組隊(duì)程序 設(shè)計(jì)一個(gè)窗體,在窗體上添加一個(gè)組合框、一個(gè)列表框、兩個(gè)標(biāo)簽和4個(gè)命令按鈕。運(yùn)行程序時(shí),用戶可從后備隊(duì)員中選擇隊(duì)員。單擊【參賽】,被選中的隊(duì)員從后備隊(duì)員列表中移動(dòng)到參賽隊(duì)員列表中。若從參賽隊(duì)員列表中選擇隊(duì)員后,單擊【后備】,則被選中的隊(duì)員從參賽隊(duì)員列表中移動(dòng)到后備隊(duì)員列表中。若雙擊列表中某個(gè)隊(duì)員,則被雙擊的運(yùn)動(dòng)員同樣也會(huì)從一個(gè)列表移動(dòng)到另一個(gè)列表中。若有新隊(duì)員加入,可在后備隊(duì)員文本框中輸入姓名,單擊【增加】,輸入隊(duì)員的姓名將增加到后備隊(duì)員列表中。,8.2 列表框,列表框控件在工具箱的圖標(biāo)是 。 列表框控件提供一個(gè)項(xiàng)目列表
3、。用戶可以從中選擇一項(xiàng)或多項(xiàng)。如果列表中的項(xiàng)目太多,超過列表框設(shè)計(jì)高度,列表框會(huì)自動(dòng)出現(xiàn)滾動(dòng)條。在列表框中,可以單列顯示。,列表框,8.2.1 列表框?qū)傩?8.2.2 列表框的事件和方法,8.2.1 列表框?qū)傩?1. Text屬性 返回列表框被選擇的列表項(xiàng)目,是字符串類型。在列表框中該屬性為只讀屬性,界面設(shè)計(jì)階段不能修改。 2. ListIndex屬性 設(shè)置或返回列表框被選擇的列表項(xiàng)的序號(hào),是整型。在列表框中第一個(gè)列表項(xiàng)序號(hào)為0,第二個(gè)列表項(xiàng)序號(hào)為1,最后一個(gè)列表項(xiàng)目序號(hào)為List Count-1。,3. List Count屬性 返回列表框列表項(xiàng)的個(gè)數(shù),是整型。 4. List屬性 字符串?dāng)?shù)
4、組,每個(gè)元素都是列表框的一個(gè)列表項(xiàng)內(nèi)容。在界面設(shè)計(jì)時(shí),利用List屬性可以輸入列表項(xiàng)目,在代碼中可以引用該數(shù)組。,5. Sorted屬性 確定列表項(xiàng)是否按升序排列,是邏輯型,通過【屬性】窗格設(shè)置。設(shè)置為True表示按升序排列列表項(xiàng)目,否則按增加先后次序排列。 6. MultiSelect屬性 確定是否一次可選擇多個(gè)列表項(xiàng),是整型,通過【屬性】窗格設(shè)置??扇≈?、1和2,0表示每次只能選擇一項(xiàng);1表示簡(jiǎn)單多項(xiàng)選擇,一次可以選擇多項(xiàng);2表示擴(kuò)展多項(xiàng)選擇,按下Ctrl或Shift鍵+鼠標(biāo)單擊,一次可以選擇多項(xiàng)。,7. Selected屬性 在支持多項(xiàng)選擇中,判斷被選擇的列表項(xiàng)。是邏輯型數(shù)組,在設(shè)計(jì)階
5、段不可用,當(dāng)數(shù)組元素為True時(shí),表示該項(xiàng)被選擇,為False時(shí),表示該項(xiàng)未被選擇。 8. 名稱和其他屬性 列表框的隱含名稱是List1、List2等。和列表框位置有關(guān)的屬性有Height、Left、Top和Width;和列表框行為有關(guān)的主要屬性有Enabled、Visible、TabIndex等。另外,列表框有與Font相關(guān)的屬性,還有設(shè)置顏色的屬性。,例8.2 增加列表項(xiàng) 設(shè)計(jì)一個(gè)窗體,在窗體上添加一個(gè)列表框、一個(gè)文本框和兩個(gè)命令按鈕。運(yùn)行程序時(shí),在文本框中輸入內(nèi)容。單擊【增加】,程序判斷列表框的所有列表項(xiàng),若沒有新輸入的內(nèi)容,則輸入的內(nèi)容增加到列表框中。一次可增加一個(gè)列表項(xiàng),可增加多次。
6、單擊【退出】結(jié)束程序執(zhí)行。,例8.3 刪除多項(xiàng)選擇 設(shè)計(jì)一個(gè)窗體,在窗體上畫一個(gè)列表框和兩個(gè)命令按鈕,運(yùn)行程序時(shí),在列表框中按“書柜”、“衣柜”、“書桌”、“椅子”、“沙發(fā)”、“床鋪”的順序輸入列表項(xiàng)。一次選擇多個(gè)列表項(xiàng),然后單擊【刪除】刪除選擇的所有列表項(xiàng)。單擊【退出】結(jié)束程序執(zhí)行。,8.2.2 列表框的事件和方法,1. 列表框的事件 列表框控接收Click事件、DblClick事件和LostFocus等事件,但大多數(shù)程序編寫DblClick事件過程。 2. 列表框的方法 列表框可以使用的方法有AddItem、RemoveItem和Clear。利用它們可以在程序運(yùn)行期間修改列表框的內(nèi)容。,A
7、ddItem方法,向列表框添加一個(gè)新項(xiàng)目,格式是: 列表框名.AddItem 字符串,序號(hào) 其中: 列表框名是列表框的名稱 字符串是要添加到列表框中新項(xiàng)目,RemoveItem方法,從列表框中刪除一個(gè)項(xiàng)目。格式是: 列表框名.RemoveItem 序號(hào) 其中: 序號(hào)是要?jiǎng)h除項(xiàng)目的順序號(hào),其值為整型,范圍從0到ListCount -1。 Clear方法,刪除列表框中的所有項(xiàng)目。格式是: 列表框名.Clear,8.3 組 合 框,組合框在工具箱的圖標(biāo)是 。 組合框控件和列表框一樣提供一個(gè)項(xiàng)目列表。用戶可以從中選擇一項(xiàng)或多項(xiàng)。在組合框中,有自己的文本框。 組合框是具有文本框控件與列表框控件特性的控件
8、。組合框系統(tǒng)的默認(rèn)名稱為Combo1、Combo2等。,組合框本身包含有一個(gè)文本框和一個(gè)列表框,用戶可以直接從列表框中選定項(xiàng)目,也可以在文本框中輸入項(xiàng)目。組合框有3種樣式,改變組合框的Style屬性值,可得到對(duì)應(yīng)的樣式,8.3.1 組合框?qū)傩?1. Style屬性 當(dāng)Style設(shè)置為0時(shí)(默認(rèn)樣式),是下拉式組合框。單擊右側(cè)的箭頭時(shí)打開選項(xiàng)列表,可從打開的列表中選擇列表項(xiàng)目,選擇的列表項(xiàng)目將顯示在文本框中。也可直接在文本框中輸入文本,在DropDown等事件過程中把文本框內(nèi)容增加到組合框中。 當(dāng)Style設(shè)置為1時(shí),是簡(jiǎn)單組合框。這時(shí)文本框右側(cè)無箭頭按鈕,它看起來象一個(gè)文本框和一個(gè)標(biāo)準(zhǔn)列表框的
9、結(jié)合,列表項(xiàng)始終顯示在列表框中??梢詮牧斜碇羞x擇項(xiàng),也可以直接在文本框中輸入文本。 當(dāng)Style設(shè)置為2時(shí),是下拉式列表框,它與下拉式組合框相似。單擊右側(cè)的箭頭時(shí)打開選項(xiàng)列表,可從打開的列表中選擇列表項(xiàng)目,選擇的列表項(xiàng)目將顯示在文本框中;通過輸入可以快速選擇文本。與下拉式組合框不同的是:它不能在文本框中輸入新的內(nèi)容。,2. Text屬性 返回列表框被選擇的列表項(xiàng)目,是字符串類型。在Style為0或1時(shí)可以鍵入文本。 組合框的(名稱)屬性系統(tǒng)默認(rèn)為Combo1,Combo2等。在列表框中的屬性同樣適于組合框。,8.3.2 組合框的事件和方法,組合框的Style取值不同,能響應(yīng)的事件也有差異,只有
10、簡(jiǎn)單組合框能響應(yīng)DblClick事件,下拉式組合框和下拉式列表框能響應(yīng)DropDown,所有組合框都能響應(yīng)Click事件。 在列表框中可以使用的方法同樣適于組合框。,8.4 數(shù) 組,在VB中,數(shù)組的含義更為廣泛,它不僅象其他計(jì)算機(jī)語言一樣允許一個(gè)數(shù)組中的元素應(yīng)屬于同一種類型,也允許一個(gè)變體數(shù)組中含有不同類型的元素。為了很好管理控件的屬性,VB有些控件的屬性使用了數(shù)組。為了處理功能相近的控件,VB 還提供了控件數(shù)組。,數(shù) 組,8.4.1 控件數(shù)組 8.4.2 在程序中定義和使用數(shù)組 8.4.3 可調(diào)數(shù)組 8.4.4 可變類型數(shù)組,8.4.1 控件數(shù)組,控件數(shù)組由一組相同類型的控件組成。這些控件具
11、有相同的名稱,具有很多相同的屬性。數(shù)組中的每個(gè)控件都有唯一的索引號(hào),即下標(biāo),下標(biāo)值由Index屬性指定,第1個(gè)控件數(shù)組元素的下標(biāo)為0,第2個(gè)控件數(shù)組元素的下標(biāo)為1等。它是創(chuàng)建控件數(shù)組時(shí)系統(tǒng)自動(dòng)按順序賦給每個(gè)控件數(shù)組元素的,程序通過索引值來區(qū)別控件數(shù)組中的元素。,(1)創(chuàng)建控件數(shù)組中的第一個(gè)控件,并進(jìn)行屬性設(shè)置。 (2)右擊控件數(shù)組中的第一個(gè)控件,從彈出的快捷菜單中選擇【復(fù)制】。 (3)右擊窗體,從彈出的快捷菜單中選擇【粘貼】。 (4)系統(tǒng)彈出對(duì)話框詢問“已有此控件,是否創(chuàng)建控件數(shù)組?”,單擊【是(Y)】 以后,可以進(jìn)行若干次粘貼,系統(tǒng)不再詢問。,例8.4 計(jì)算器 設(shè)計(jì)一個(gè)窗體,在窗體上設(shè)計(jì)由十
12、個(gè)數(shù)字按鈕、4個(gè)運(yùn)算符按鈕一個(gè)【=】按鈕和一個(gè)標(biāo)簽,模擬計(jì)算器能完成一步計(jì)算功能。,8.4.2 在程序中定義和使用數(shù)組,在計(jì)算機(jī)中數(shù)組占據(jù)一塊內(nèi)存區(qū)域,數(shù)組名是這個(gè)區(qū)域的名稱,下標(biāo)可標(biāo)識(shí)數(shù)組元素在該區(qū)域的位置。數(shù)組應(yīng)遵循先定義后使用的原則。定義數(shù)組的目的是為其留出所需空間。這一點(diǎn)和控件屬性中使用到的數(shù)組不同,控件屬性中用到的數(shù)組是系統(tǒng)定義的。 定義數(shù)組的一般格式: Dim 數(shù)組名(第一維說明,第二維說明 .) As 類型 第一維說明、第二維說明等分別是每個(gè)下標(biāo)的允許范圍,如: 下標(biāo)下界 To 下標(biāo)上界 也可以是每維下標(biāo)上界。在默認(rèn)情況下,數(shù)組下標(biāo)的下界為0 。,例如: Dim Labc(1 T
13、o 20) As Integer 定義一維數(shù)組Labc是整型數(shù)組,含有20個(gè)元素,從Labc (1)到Labc (20)。 Dim Names(11) As String 定義一維數(shù)組Names,Names是可以保存12個(gè)元素的數(shù)組,Names(0)是 第一個(gè)元素,Names(11)是最后一個(gè)元素,每個(gè)元素都是字符串類型。 Dim Mna(-10 To 10) As Integer 定義一維數(shù)組Mna是整型數(shù)組,含有21個(gè)元素,從Mna (-10)到Mna (10)。 Dim Kxyz%(10), Sop#(60) 定義一維數(shù)組Kxyz是整型數(shù)組,含有11個(gè)元素,從Kxyz(0)到Kxyz(1
14、0)。 定義一維數(shù)組Sop是雙精度型數(shù)組,含有61個(gè)元素,從Sop(0)到Sop (60)。 Dim Xyz(10, 10) As Single 定義二維數(shù)組Xyz是單精度型數(shù)組,含有121個(gè)元素, 從Xyz (0,0)到Xyz (10,10)。,除使用Dim語句指定下界,還可以使用Option Base 語句指定下界。 Option Base 語句格式為: Option Base 下界值 例如: Option Base 1 Dim K1(30) As Integer 定義一維數(shù)組K1是整型數(shù)組,含有30個(gè)元素,從K1(1)到k1(30),例8.5 計(jì)算平均工資 設(shè)計(jì)一個(gè)窗體,在窗體上添加兩個(gè)
15、命令按鈕。運(yùn)行程序時(shí),單擊【計(jì)算】,彈出輸入對(duì)話框,用于輸入公司每個(gè)員工的工資,當(dāng)輸入“-1”時(shí),計(jì)算并輸出員工人數(shù)和平均工資,假定公司員工人數(shù)小于100人。 例8.6 輸出楊輝三角形 設(shè)計(jì)一個(gè)窗體,在窗體上添加兩個(gè)命令按鈕。運(yùn)行程序時(shí),單擊【輸出】,彈出輸入對(duì)話框,用于輸入要輸出楊輝三角形的行數(shù),假定要輸入的數(shù)小于11。,8.4.3 可調(diào)數(shù)組,定義數(shù)組的目的是為了預(yù)留連續(xù)的存儲(chǔ)空間,但有時(shí)數(shù)組的大小只有運(yùn)行程序時(shí)才能確定,定義“足夠大”的數(shù)組雖然可以解決這個(gè)問題,但浪費(fèi)了很多存儲(chǔ)空間。在例8.5中處理gz數(shù)組VB的編譯程序?qū)㈩A(yù)留了100個(gè)存儲(chǔ)空間,但實(shí)際可能只使用其中一部分。為此,VB 6.
16、0提供了可調(diào)數(shù)組用來解決這個(gè)問題,可調(diào)數(shù)組也稱動(dòng)態(tài)數(shù)組??烧{(diào)數(shù)組的長度可以在運(yùn)行程序時(shí)改變。 定義可調(diào)數(shù)組的方法是 先用Dim語句(或Private和Public),但不要指定下標(biāo)范圍。 再用ReDim語句指定數(shù)組的準(zhǔn)確尺寸。,例8.7 計(jì)算前三名職工工資 設(shè)計(jì)一個(gè)窗體,在窗體上添加兩個(gè)命令按鈕。運(yùn)行程序時(shí),單擊【計(jì)算】,彈出輸入對(duì)話框,要求輸入員工人數(shù)。以后要求輸入公司每個(gè)員工的工資,輸入結(jié)束后計(jì)算并輸出員工人數(shù)和平均工資,然后再輸出工資最高的前三名職工工資。,8.4.4 可變類型數(shù)組,當(dāng)一個(gè)數(shù)組被說明成變體類型的數(shù)組,它的每個(gè)元素也是變體類型的,因此,可以存放各種類型的數(shù)據(jù),例如: Opt
17、ion Base 1 Private Sub Form_Click() Dim an(6) For i = 1 To 3 an(i) = Name + Str(i) Next i For i = 4 To 6 an(i) = Int(Rnd * 10000) / 100 Next i For i = 1 To 3 Print an(i), an(i + 3) Next i End Sub,變體變量可以擴(kuò)充為數(shù)組,用Array函數(shù)可以給變體變量賦一組數(shù),這組數(shù)的數(shù)據(jù)類型可以不同,賦值以后變體變量擴(kuò)充為數(shù)組,可訪問其中的元素。例如: Option Base 1 Private Sub Form_Click() Dim an an = Array(Name 1, Name 2, Name 3, Int(Rnd * 10000) / 100, Int(Rnd * 10000) / 100, Int(Rnd * 10000) / 100) For i = 1 To 3 Print an(i), an(i + 3) Next i End Sub,8.5 綜 合 運(yùn) 用,例8.8 入網(wǎng)登記 設(shè)計(jì)一個(gè)窗體,在窗體上添加3個(gè)標(biāo)簽、一個(gè)文本框、一個(gè)列表框和兩個(gè)命令按鈕。運(yùn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個(gè)人之間環(huán)??萍冀杩詈贤?guī)范書2篇
- 2025版贍養(yǎng)老人子女責(zé)任分擔(dān)及費(fèi)用分?jǐn)偤贤?篇
- 二零二五版消防系統(tǒng)安裝與消防設(shè)備檢測(cè)及維修合同3篇
- 二零二五年度企業(yè)園區(qū)物業(yè)管理合同范本正規(guī)范本3篇
- 二零二五年度行政合同簽訂與行政指導(dǎo)實(shí)施要點(diǎn)匯編3篇
- 二零二五版代付款委托合同范本(升級(jí)版)3篇
- 二零二五年度農(nóng)產(chǎn)品深加工投資合作協(xié)議書3篇
- 二零二五年度跨境電商進(jìn)口商品銷售訂單協(xié)議
- 排球場(chǎng)防滑地面施工方案
- 新密鋼結(jié)構(gòu)防腐施工方案
- 漢語言溝通發(fā)展量表(長表)-詞匯及手勢(shì)(8-16月齡)
- 高速公路相關(guān)知識(shí)講座
- 兒科關(guān)于抗生素使用的PDCA
- 商務(wù)服務(wù)業(yè)的市場(chǎng)細(xì)分和定位策略
- 財(cái)政學(xué)論文我國財(cái)政支出存在的問題及改革建議
- 2022年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握袛?shù)學(xué)模擬試題及答案解析
- 小學(xué)生必備古詩
- 手術(shù)室護(hù)理實(shí)踐指南2023年
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)六 結(jié)合熱度事件的內(nèi)容傳播
- 新人教版六年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)課件
- 江蘇對(duì)口單招英語考綱詞匯總結(jié)
評(píng)論
0/150
提交評(píng)論