Visual Basic程序設(shè)計(jì)教程(第3版)第vb10_第1頁
Visual Basic程序設(shè)計(jì)教程(第3版)第vb10_第2頁
Visual Basic程序設(shè)計(jì)教程(第3版)第vb10_第3頁
Visual Basic程序設(shè)計(jì)教程(第3版)第vb10_第4頁
Visual Basic程序設(shè)計(jì)教程(第3版)第vb10_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

10.1用戶定義類型例如,某校的學(xué)生學(xué)籍管理情況見表10-1。第10章用戶定義類型與枚舉類型10.1.1建立用戶定義類型1.語法格式VB中提供了定義記錄結(jié)構(gòu)的語句,稱這種語句為用戶定義數(shù)據(jù)類型,其語法格式為:[Public|Private]Type〈用戶類型名〉〈字段名1〉A(chǔ)s〈類型名1〉[〈字段名2〉A(chǔ)s〈類型名2〉]……[〈字段名n〉A(chǔ)s〈類型名n〉]EndType2.注意事項(xiàng)(1)在使用用戶定義類型之前,必須用Type語句定義。用戶定義類型在標(biāo)準(zhǔn)模塊中定義,其變量可以出現(xiàn)在工程的任何地方。(2)用戶定義類型中的元素可以是字符串,但必須是定長(zhǎng)字符串。(3)在用戶定義類型中不能含有數(shù)組。3.使用示例【例10-1】建立用戶定義類型,使其包含學(xué)號(hào)、姓名、性別和平均分等數(shù)據(jù)項(xiàng)。用Type語句定義名稱為st的記錄,代碼如下:TypestxhAsString*7 '學(xué)號(hào)為7個(gè)字符的定長(zhǎng)字符串

xmAsString*8 '姓名為8個(gè)字符的定長(zhǎng)字符串

xbAsString*2 '性別為2個(gè)字符的定長(zhǎng)字符串

pjfAsSingle '平均分為單精度型EndType10.1.2建立和使用用戶定義類型變量建立了用戶定義類型后,就可以建立相應(yīng)的用戶定義類型變量,然后使用該變量。1.建立用戶定義類型變量建立用戶定義類型后,可以用Dim,Redim或Static語句定義一個(gè)具有這種數(shù)據(jù)類型的變量。例如,在例10-1的基礎(chǔ)上,定義一個(gè)具有st類型的變量stu:DimstuAsst用戶定義類型也可以作為數(shù)組元素的數(shù)據(jù)類型,例如,定義一個(gè)擁有10個(gè)記錄元素的數(shù)組stud:Dimstud(1To10)Asst2.使用用戶定義類型變量如果要對(duì)用戶定義類型變量中的某個(gè)字段的數(shù)據(jù)進(jìn)行讀取,使用方法為:〈用戶定義類型變量名〉.〈字段名〉例如,要讀取用戶定義類型變量stu中xh字段的數(shù)據(jù),要寫為:stu.xh。3.建立和使用用戶定義類型變量示例【例10-2】如圖10-1所示,利用用戶定義類型變量對(duì)各項(xiàng)賦值。設(shè)計(jì)步驟如下。(1)建立用戶界面并設(shè)置對(duì)象屬性,如圖10-1所示。(2)在窗體模塊的通用段創(chuàng)建用戶定義類型:PrivateTypestxhAsString*7 '學(xué)號(hào)定義為7個(gè)字符的定長(zhǎng)字符串

xmAsString*8 '姓名定義為8個(gè)字符的定長(zhǎng)字符串

xbAsString*2 '性別定義為2個(gè)字符的定長(zhǎng)字符串

pjfAsSingle '平均分定義為單精度型EndType編寫“顯示數(shù)據(jù)”命令按鈕Command1的Click事件代碼:PrivateSubCommand1_Click()DimstuAsst '定義st類型的變量stustu.xh="2002001"

stu.xm="杜洪"

stu.xb="女"

stu.pjf=80Text1.Text=stu.xh 'Text1.Text賦值為stu.xh的值

Text2.Text=stu.xm 'Text2.Text賦值為stu.xm的值

Text3.Text=stu.xb 'Text3.Text賦值為stu.xb的值

Text4.Text=stu.pjf 'Text4.Text賦值為stu.pjf的值EndSub10.1.3用戶定義類型數(shù)組所謂用戶定義類型數(shù)組,是指其數(shù)組元素的數(shù)據(jù)類型為用戶定義類型,這種數(shù)組也稱為記錄數(shù)組(Arrayofrecords)。1.存取用戶定義類型數(shù)組元素存取用戶定義類型數(shù)組元素的某字段數(shù)據(jù)的語法格式為:〈用戶定義類型數(shù)組元素〉.〈字段名〉例如,要存取例10-2中第二個(gè)、第三個(gè)學(xué)生的平均分,應(yīng)寫成下面的形式:stud(2).pjfstud(3).pjf2.用戶定義類型數(shù)組示例【例10-3】定義一個(gè)包含40個(gè)學(xué)生信息的數(shù)組,試對(duì)第3個(gè)學(xué)生的學(xué)號(hào)、姓名、性別、平均分字段進(jìn)行賦值。(1)建立用戶界面并設(shè)置對(duì)象屬性,如圖10-2所示。(2)在窗體模塊的通用段創(chuàng)建用戶定義類型。PrivateTypestxhAsString*7 'xh定義為7個(gè)字符的定長(zhǎng)字符串

xmAsString*8'xm定義為8個(gè)字符的定長(zhǎng)字符串

xbAsString*2 'xb定義為2個(gè)字符的定長(zhǎng)字符串

pjfAsSingle 'pjf定義為單精度型EndType(3)編寫“顯示數(shù)據(jù)”命令按鈕Command1的Click事件代碼。PrivateSubCommand1_Click()Dimstud(1To40)Asst'定義用戶定義數(shù)組

stud(3).xh="2002010" '為數(shù)組元素的xh字段賦值

stud(3).xm="馬飛飛" '為數(shù)組元素的xm字段賦值

stud(3).xb="女" '為數(shù)組元素的xb字段賦值

stud(3).pjf=94 '為數(shù)組元素的pjf字段賦值

Text1.Text=stud(3).xhText2.Text=stud(3).xmText3.Text=stud(3).xbText4.Text=stud(3).pjfEndSub10.2枚舉類型所謂“枚舉”,是指將變量的值一一列舉出來,且變量的值只限于列舉出來的值的范圍。10.2.1定義枚舉類型1.定義枚舉類型的語法格式定義枚舉類型的語法格式為:[Public|Private]Enum〈類型名稱〉〈成員名〉[=〈常數(shù)表達(dá)式〉]〈成員名〉[=〈常數(shù)表達(dá)式〉]……EndEnum2.枚舉類型中的常數(shù)值(1)在默認(rèn)情況下,枚舉中的第一個(gè)常數(shù)被初始化為0,其后的常數(shù)則被初始化為比其前面的常數(shù)大1的數(shù)值。例如:PublicEnumDays

SundayMondayTuesdayWednesdayThursdayFridaySaturdayEndEnum(2)可以用賦值語句顯式地給枚舉中的常數(shù)賦值,即不省略〈常數(shù)表達(dá)式〉,所賦的值可以是任何長(zhǎng)整數(shù),包括負(fù)數(shù)。如果想用小于0的常數(shù)表示出錯(cuò)條件,可以給枚舉常數(shù)賦一個(gè)負(fù)值。例如,在下面的枚舉中,Saturday是枚舉中的第一個(gè)元素,被賦值為0。由于Sunday被顯式地賦為0,則Monday被賦值為1,Tuesday為2,其余類推。PublicEnum

WorkDays

SaturdaySunday=0MondayTuesdayWednesdayThursdayFridayInvalid=-1EndEnum(3)當(dāng)對(duì)一個(gè)枚舉中的常數(shù)賦值時(shí),還可以使用另一個(gè)枚舉中的常數(shù)值。但應(yīng)注意,為避免混淆,應(yīng)在常數(shù)名前加上枚舉名。例如:PublicEnum

WorkDays

Sunday=0MondayTuesdayWednesday

ThursdayFridaySaturday=Days.Saturday-6Invalid=-1EndEnum(4)VB將枚舉中的常數(shù)數(shù)值看做是長(zhǎng)整數(shù)。如果將一個(gè)浮點(diǎn)數(shù)值賦給一個(gè)枚舉中的常數(shù),VB會(huì)自動(dòng)將該值取整為最接近的長(zhǎng)整數(shù)。10.2.2枚舉類型使用示例【例10-4】輸入一個(gè)表示星期的數(shù)字,判斷該天是工作日還是非工作日。【分析】先定義枚舉類型Workdays,再定義一個(gè)Workdays類型的變量Myday。Myday的取值范圍為0~6。當(dāng)Myday的值是6(表示星期六)或0(表示星期日)時(shí),輸出是“非工作日”,否則輸出“工作日”。設(shè)計(jì)步驟如下。(1)建立用戶界面并設(shè)置對(duì)象屬性,如圖10-3所示。(2)編寫事件代碼。建立新工程,執(zhí)行“工程”→“添加模塊”菜單命令,在代碼窗口中輸入下面的枚舉類型定義:PublicEnumWorkdaysSunday '值為0Monday '值為1Tuesday '值為2Wednesday '值為3Thursday '值為4Friday '值為5Saturday '值為6Invalid=-1EndEnum編寫“判斷”命令按鈕Command1的Click事件過程:PrivateSubCommand1_Click()DimMydayAsWorkdays '定義Myday為枚舉類型WorkdaysText1.SetFocusMyday=Val(Text1.Text)IfMyday=SundayOrMyday=SaturdayThen'星期日或星期六

Label4.Caption="非工作日!可以休息了。^o^"ElseLabel4.Caption="工作日!不要偷懶呀。~!~"EndIfEndSub運(yùn)行程序,在文本框中輸入的數(shù)字,結(jié)果如圖10-3所示。當(dāng)在代碼窗口中輸入示例中的代碼時(shí),VB在自動(dòng)列出成員列表中顯示W(wǎng)orkdays枚舉的常數(shù),如圖10-4所示。10.3滾動(dòng)條控件10.3.1滾動(dòng)條控件的類型滾動(dòng)條有水平和垂直兩種,可以通過水平滾動(dòng)條(HScrollBars)和垂直滾動(dòng)條(VScrollBars)工具來建立,如圖10-5所示。1.水平滾動(dòng)條水平滾動(dòng)條的滑塊在最左端時(shí)代表最小值Min,滑塊由左往右移動(dòng),代表的值隨之遞增,在最右端代表最大值Max。2.垂直滾動(dòng)條垂直滾動(dòng)條的滑塊在最上端時(shí)代表最小值Min,滑塊由上向下移動(dòng),代表的值隨之遞增,到最下端為最大值Max。10.3.2滾動(dòng)條控件的常用屬性1.Min和Max屬性Min和Max屬性用來返回或設(shè)置滾動(dòng)條所能代表的最小值和最大值,其取值范圍為:–32768~32767。Min屬性的默認(rèn)值為0,Max屬性的默認(rèn)值為32767。2.Value屬性Value屬性用來返回或設(shè)置滾動(dòng)條的當(dāng)前位置,其返回值始終介于Max和Min屬性值之間,包括這兩個(gè)值。3.LargeChange屬性LargeChange屬性用來返回或設(shè)置單擊滑塊和滾動(dòng)箭頭之間的區(qū)域時(shí)(稱為滑桿),滾動(dòng)條控件Value屬性值的改變量。4.SmallChange屬性SmallChange屬性用來返回和設(shè)置當(dāng)用戶單擊滾動(dòng)箭頭時(shí),滾動(dòng)條控件Value屬性值的改變量。當(dāng)單擊滾動(dòng)條兩端的箭頭按鈕時(shí),滾動(dòng)條的值將按最小改變量進(jìn)行遞增或遞減。該屬性的默認(rèn)值為1。10.3.3滾動(dòng)條控件的常用事件滾動(dòng)條控件可以識(shí)別的事件中,較重要的是Change事件和Scroll事件。1.Change事件在程序運(yùn)行過程中,每當(dāng)滾動(dòng)條的Value屬性發(fā)生變化時(shí),就發(fā)生Change事件。2.Scroll事件盡管拖動(dòng)滑塊會(huì)引起Value屬性發(fā)生變化,從而觸發(fā)Change事件,但在滾動(dòng)條內(nèi)拖動(dòng)滑塊的過程中,并不發(fā)生Change事件,此時(shí)將觸發(fā)產(chǎn)生滾動(dòng)條的Scroll(滾動(dòng))事件。當(dāng)然,滑塊的位置改變后,又將觸發(fā)產(chǎn)生Change事件。10.3.4滾動(dòng)條控件使用示例【例10-5】滾動(dòng)條控件的簡(jiǎn)單示例。在窗體上建立一個(gè)水平滾動(dòng)條,一個(gè)文本框(用來顯示滑塊當(dāng)前位置所代表的值),如圖10-6所示。為了讓文本框能夠即時(shí)顯示滑塊當(dāng)前位置所代表的值,必須要有下面的事件過程代碼:PrivateSubHScroll1_Change()HScroll1.Max=200HScroll1.Min=1HScroll1.SmallChange=1HScroll1.LargeChange=5Text1.Text=HScroll1.ValueEndSub運(yùn)行程序,結(jié)果如圖10-7所示。【例10-6】設(shè)計(jì)一個(gè)通過滾動(dòng)條調(diào)整顏色的程序。程序啟動(dòng)后的界面如圖10-8所示,當(dāng)用戶單擊3個(gè)滾動(dòng)條兩端的箭頭按鈕、直接拖動(dòng)滾動(dòng)條上的滑塊或單擊滾動(dòng)條上的滑桿時(shí),可以調(diào)整Rgb()函數(shù)中對(duì)應(yīng)的顏色值,從而使“顏色效果”區(qū)中顯示出不同的顏色。(1)建立用戶界面。在窗體中添加3個(gè)水平滾動(dòng)條HScroll1~HScroll3,3個(gè)標(biāo)簽Label1~Label3,一個(gè)框架Frame1,并在框架中添加一個(gè)文本框Text1。調(diào)整控件大小并安排適當(dāng)?shù)奈恢茫鐖D10-9所示。(2)設(shè)置對(duì)象屬性。將窗體的Caption屬性設(shè)為“調(diào)色板”。將Label1~Label3的AutoSize屬性設(shè)為True。將HScroll1~HScroll3的Max屬性設(shè)為255,SmallChange屬性設(shè)為8,LargeChange屬性設(shè)為32。將Frame1的Caption屬性設(shè)為“顏色效果”。將Text1的Text屬性設(shè)為空,Enabled屬性設(shè)為False(不響應(yīng)用戶產(chǎn)生的事件)。(3)編寫事件代碼。創(chuàng)建ChangeColor過程如下:PrivateSubChangeColor()Text1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)EndSub編寫窗體Form1的Load事件代碼:PrivateSubForm_Load()

Label1.Caption="紅色值:"&HScroll1.ValueLabel2.Caption="綠色值:"&HScroll2.ValueLabel3.Caption="藍(lán)色值:"&HScroll3.Value

ChangeColor '調(diào)用ChangeColor過程EndSub編寫水平滾動(dòng)條HScroll1的Change(改變)事件代碼:PrivateSubHScroll1_Change()Label1.Caption="紅色值:"&HScroll1.Value

ChangeColor '調(diào)用ChangeColor過程EndSub編寫水平滾動(dòng)條HScroll1的Scroll(滾動(dòng))事件代碼:PrivateSub

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論