第四講VB高級語言技巧教學ppt課件_第1頁
第四講VB高級語言技巧教學ppt課件_第2頁
第四講VB高級語言技巧教學ppt課件_第3頁
第四講VB高級語言技巧教學ppt課件_第4頁
第四講VB高級語言技巧教學ppt課件_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第四講第四講VB高級言語技巧高級言語技巧 內容簡介內容簡介本章以一個多功能計算器運用程序為實例本章以一個多功能計算器運用程序為實例對第對第3章所開發(fā)的簡單計算器進展功能擴章所開發(fā)的簡單計算器進展功能擴展展在根底上,較系統(tǒng)引見數(shù)組、過程、函數(shù)在根底上,較系統(tǒng)引見數(shù)組、過程、函數(shù)的定義和運用方法的定義和運用方法詳細講解了鼠標和鍵盤的常用運用技巧。詳細講解了鼠標和鍵盤的常用運用技巧。 經過本章的學習,他將初步具備利用經過本章的學習,他將初步具備利用VB編編程各類高級運用程序的才干。程各類高級運用程序的才干。 學習目的學習目的 1掌握數(shù)組的運用方法掌握數(shù)組的運用方法2掌握鍵盤、鼠標的運用技巧掌握鍵盤、

2、鼠標的運用技巧3掌握過程和函數(shù)的定義和調用方法掌握過程和函數(shù)的定義和調用方法4掌握掌握API函數(shù)的調用方法函數(shù)的調用方法5了解枚舉及自定義數(shù)據類型了解枚舉及自定義數(shù)據類型6了解了解“多功能計算器程序設計過程多功能計算器程序設計過程 4.1“多功能計算器程序義務多功能計算器程序義務 目的:對上一講的目的:對上一講的“計算器程序進計算器程序進展擴展和完善展擴展和完善4.1.1 義務概述義務概述 能否利用第能否利用第3章所學知識,對這個程序進章所學知識,對這個程序進展一些功能擴展,比如將計算結果轉換成展一些功能擴展,比如將計算結果轉換成十六進制呢?十六進制呢?文本框主要是用于顯示信息的,那么能否文本

3、框主要是用于顯示信息的,那么能否制止用戶經過鍵盤在其中輸入數(shù)據呢?制止用戶經過鍵盤在其中輸入數(shù)據呢?能否使計算器窗體總是懸浮在其他窗體之能否使計算器窗體總是懸浮在其他窗體之上,以便于運用呢?上,以便于運用呢? 在編寫數(shù)字區(qū)按鈕事件代碼時,任務量過在編寫數(shù)字區(qū)按鈕事件代碼時,任務量過于反復。于反復。10個按鈕要編寫個按鈕要編寫10個個Click事件處事件處置程序,假設有置程序,假設有100個這樣的按鈕,是不個這樣的按鈕,是不是意味著我們要編寫是意味著我們要編寫100個這樣的程序呢?個這樣的程序呢?仔細分析這些代碼,會發(fā)現(xiàn)它們根本一樣,仔細分析這些代碼,會發(fā)現(xiàn)它們根本一樣,那么能否采用合并同類項的

4、方法,以減少那么能否采用合并同類項的方法,以減少代碼設計的任務量呢?代碼設計的任務量呢?本講義務將針對上述問題,利用數(shù)組、鍵盤控件、本講義務將針對上述問題,利用數(shù)組、鍵盤控件、自定義函數(shù)等方法,對簡單計算器程序進展功能自定義函數(shù)等方法,對簡單計算器程序進展功能擴展,運轉結果如下圖擴展,運轉結果如下圖 采用控件數(shù)組重新設計 制止用戶鍵盤輸入當鼠標挪動時,自動顯示提示信息 4.1.2 界面設計界面設計 新知識:控件數(shù)組新知識:控件數(shù)組4.1.3 代碼設計代碼設計 1用用API函數(shù)實現(xiàn)函數(shù)實現(xiàn)“總在前面效果總在前面效果 2數(shù)字區(qū)的命令按鈕的數(shù)字區(qū)的命令按鈕的Click事件事件 與普通Click事件的

5、區(qū)別Private Sub Command1_Click(Index As Integer)運用Str函數(shù)將Index轉換為字符串,然后運用Trim函數(shù)去掉前端空格。 If txtLabel.Text = Then txtFirst.Text = txtFirst.Text + Trim(Str(Index) Else txtSecond.Text = txtSecond.Text + Trim(Str(Index) End IfEnd Sub 3制止用戶在文本框中輸入數(shù)字制止用戶在文本框中輸入數(shù)字 三種方法可實現(xiàn)這種功能三種方法可實現(xiàn)這種功能一是將文本框的一是將文本框的Enabled屬性設置

6、為屬性設置為False;二是將文本框的二是將文本框的Locked屬性設置為屬性設置為True;三是經過代碼控制鍵盤事件三是經過代碼控制鍵盤事件 Private Sub txtResult_KeyDown(KeyCode As Integer, Shift As Integer) KeyCode = 0 制止一切的鍵盤輸入除BackSpace退格鍵外End Sub由于上述方法不能制止BackSpace退格鍵,因此需求在KeyPress事件中額外編寫代碼。Private Sub txtResult_KeyPress(KeyAscii As Integer) KeyAscii = 0 制止BackS

7、pace退格鍵End Sub4修正修正“計算結果按鈕的計算結果按鈕的Click事件代碼事件代碼 將計算結果轉換為十六進制數(shù)字 txtHex.Text = Hex(MyResult) 將計算結果轉換為大寫數(shù)字,由于需求編寫大量代碼,所以采用函數(shù)功能完成。txtBig.Text = ChangeMe(MyResult) 5編寫編寫ChangeMe函數(shù)代碼函數(shù)代碼 Private Function ChangeMe(First As Double) As String聲明變量 Dim strFirst As String Dim strBig(9) As String 聲明一個字符串數(shù)組 Dim s

8、trTemp As String Dim i, j As Integer 設置數(shù)組變量的值 strBig(0) = “零:strBig(1) = “壹: strBig(2) = “貳 strBig(3) = 叁: strBig(4) = 肆 strBig(5) = “伍:strBig(6) = “陸: strBig(7) = “柒: strBig(8) = “捌 strBig(9) = 玖將Double型的參數(shù)First轉換為字符串型 strFirst = Trim(str(First) strTemp = “開場數(shù)字轉換 For i = 1 To Len(strFirst) j = Val(

9、Mid(strFirst, i, 1) 取第i位置的字符數(shù)字,并將它轉換為數(shù)值型 strTemp = strTemp + strBig(j) 經過數(shù)組完成大寫轉換 Next I將轉換結果前往 ChangeMe = strTemp End Function 4.2數(shù)組的運用數(shù)組的運用 4.2.1數(shù)組數(shù)組 1數(shù)組的概念數(shù)組的概念 在實踐編程時,經常會對一批具有一樣屬性在實踐編程時,經常會對一批具有一樣屬性的數(shù)據整體進展處置,這時就會用到數(shù)組的數(shù)據整體進展處置,這時就會用到數(shù)組類型了。類型了。VB中把一組具有同一名字,不同下標的變量中把一組具有同一名字,不同下標的變量稱為數(shù)組,它實踐上是一組一樣類型

10、的變稱為數(shù)組,它實踐上是一組一樣類型的變量的集合。量的集合。根據下標的個數(shù)可分為一維數(shù)組、二維數(shù)組、根據下標的個數(shù)可分為一維數(shù)組、二維數(shù)組、多維數(shù)組。多維數(shù)組。 2聲明靜態(tài)數(shù)組聲明靜態(tài)數(shù)組 方法方法1:Dim 數(shù)組名數(shù)組名(上界上界) As數(shù)據類型數(shù)據類型 Dim A(5) As Integer Dim B(5,5) As Integer方法方法2:Dim 數(shù)組名數(shù)組名(下界下界 To 上界上界) Dim A(1 To 5) As IntegerDim B(1 To 5,1 To 5) As IntegerOption base0|1在模塊級別中運用,用來聲明數(shù)組下標的缺省下在模塊級別中運用,

11、用來聲明數(shù)組下標的缺省下界界缺省形狀為缺省形狀為03動態(tài)數(shù)組動態(tài)數(shù)組 假設不能事先確定數(shù)組元素的個數(shù),我假設不能事先確定數(shù)組元素的個數(shù),我們就可以采用動態(tài)數(shù)組聲明技術們就可以采用動態(tài)數(shù)組聲明技術 主要方法主要方法1首先聲明一個靜態(tài)數(shù)組。可以只首先聲明一個靜態(tài)數(shù)組??梢灾欢x數(shù)組名,不指定數(shù)組的大小。比如:定義數(shù)組名,不指定數(shù)組的大小。比如:Dim A() As Integer2在程序執(zhí)行過程中,運用在程序執(zhí)行過程中,運用ReDim語句修正數(shù)組的大小或數(shù)組的上下界,語句修正數(shù)組的大小或數(shù)組的上下界,比如:比如:ReDim A(20) As Integer或或ReDim A(1 To 20) As

12、 Integer 4.2.2控件數(shù)組控件數(shù)組 數(shù)據類型為控件類型數(shù)據類型為控件類型即一切元素的即一切元素的Name屬性均一樣屬性均一樣各控件元素用各控件元素用Index屬性表示數(shù)組下標屬性表示數(shù)組下標 注:注:1.數(shù)組命名規(guī)那么同變量名數(shù)組命名規(guī)那么同變量名2.數(shù)組名后用圓括弧數(shù)組名后用圓括弧3.下標下界不可大于上界下標下界不可大于上界4.可用變量名或常數(shù)名作下標的邊境可用變量名或常數(shù)名作下標的邊境4.2.3枚舉及自定義數(shù)據類型枚舉及自定義數(shù)據類型 Public Enum enmDay星期日星期日 = 1星期一星期一 = 2星期二星期二 = 3星期三星期三 = 4星期四星期四 = 5星期五星期

13、五 = 6星期六星期六 = 7End Enum Dim myday as enmdayMyday=星期日聲明一個變量聲明一個變量Myday,其類型為,其類型為enmDayDim Myday As enmDay 為變量賦值,相當于為變量賦值,相當于Myday=1 Myday = 星期日星期日自定義類型自定義類型構造類型數(shù)據構造類型數(shù)據數(shù)組數(shù)組緣由:將不同類型的數(shù)據組合成一個整緣由:將不同類型的數(shù)據組合成一個整體,以便于援用。體,以便于援用。記錄記錄用戶自定義數(shù)據類型,由多個變用戶自定義數(shù)據類型,由多個變量構成的構造化的數(shù)據類型量構成的構造化的數(shù)據類型變量是記錄的成員,可以為不同類型變量是記錄的成

14、員,可以為不同類型自定義請自學1.記錄類型定義記錄類型定義語法格式:語法格式:Private | Public Type 記錄類型名記錄類型名 成員列表成員列表 End TypePublic,可選,可在一切工程的一切模塊的任可選,可在一切工程的一切模塊的任何過程中運用何過程中運用Private,可選,只能在包含該聲明的模塊中運可選,只能在包含該聲明的模塊中運用用成員列表是記錄中成員的集合,對成員成員列表是記錄中成員的集合,對成員進展類型闡明進展類型闡明 成員名成員名 As 數(shù)據類型數(shù)據類型記錄類型變量的命名規(guī)那么同普通變量記錄類型變量的命名規(guī)那么同普通變量名,不同點:不能運用類型聲明后綴名,不

15、同點:不能運用類型聲明后綴%,&,#,!,$TypeEnd Type塊中不允許運用行號和塊中不允許運用行號和標簽標簽例:例:Public Type Student學號學號 As String*10姓名姓名 As String*10年齡年齡 As Integer籍貫籍貫 As String End Type 1聲明變量聲明變量 Dim x As Student2運用運用 x.學號學號 = 2019001 x.姓名姓名 = 張紅張紅 枚舉和自定義類型是一種有效的數(shù)據枚舉和自定義類型是一種有效的數(shù)據組織方式,雖然不運用它們也照樣可組織方式,雖然不運用它們也照樣可以開發(fā)出功能強大的運用程序,但

16、有以開發(fā)出功能強大的運用程序,但有效地運用這兩種方式,可以使程序代效地運用這兩種方式,可以使程序代碼更明晰,簡約。假設要運用這兩種碼更明晰,簡約。假設要運用這兩種方式,最好能在模塊中運用方式,最好能在模塊中運用Public定定義,以便整個運用程序運用。義,以便整個運用程序運用。 4.3過程和函數(shù)的定義和調用過程和函數(shù)的定義和調用 SubEnd Sub定義的子程序稱為定義的子程序稱為Sub過程子過程過程子過程 將將FunctionEnd Function定義的函定義的函數(shù)稱為數(shù)稱為Function過程函數(shù)過程過程函數(shù)過程 4.3.1為什么要編寫自定義過程為什么要編寫自定義過程 函數(shù)過程是一種代碼

17、分塊技術,采用這種技函數(shù)過程是一種代碼分塊技術,采用這種技術將運用程序劃分為多個程序模塊,至少可術將運用程序劃分為多個程序模塊,至少可帶來以下益處:帶來以下益處:1過程規(guī)模小,容易調度和維護。過程規(guī)模小,容易調度和維護。2過程可以被反復調用,從而防止了反復編過程可以被反復調用,從而防止了反復編碼,加強了可重用性碼,加強了可重用性Reuse。3過程是由處置某一特定功能的代碼組成,過程是由處置某一特定功能的代碼組成,是一個相對獨立的實體。將運用程序劃分為是一個相對獨立的實體。將運用程序劃分為一個個這樣的實體,會使得程序構造簡約,一個個這樣的實體,會使得程序構造簡約,便于閱讀維護。便于閱讀維護。 4

18、.3.2 Sub過程過程 1.在規(guī)范模塊中定義公用過程在規(guī)范模塊中定義公用過程2.在窗體中建立私有的在窗體中建立私有的Sub過程過程 3調用調用 4.3.3 Function過程過程 1.定義Private Function PlusXY(x As Integer,y As Integer) As IntegerPlusXY = x+y End Function 2.調用Dim I As IntegerI = PlusXY(1,2) 4.3.4 參數(shù)傳送機制簡介參數(shù)傳送機制簡介 方式參數(shù)方式參數(shù):將將Sub過程或過程或Function過程定義過程定義中出現(xiàn)的變量稱號中出現(xiàn)的變量稱號實踐參數(shù)實踐

19、參數(shù):在調用時傳送給在調用時傳送給Sub過程和過程和Function過程的常量、變量或表達式。過程的常量、變量或表達式。將參數(shù)以變量的方式傳送的過程稱為參數(shù)將參數(shù)以變量的方式傳送的過程稱為參數(shù)傳送傳送 ,VB中參數(shù)傳送的機制有兩種:中參數(shù)傳送的機制有兩種:一種是援用傳送參數(shù)默許一種是援用傳送參數(shù)默許另一種是按值傳送參數(shù)。另一種是按值傳送參數(shù)。 1按援用傳送參數(shù)按援用傳送參數(shù) 這種方式將參數(shù)變量的內存地址傳這種方式將參數(shù)變量的內存地址傳送給送給Sub或或Function過程,過程經過過程,過程經過內存地址訪問實踐參數(shù)的內容,從內存地址訪問實踐參數(shù)的內容,從而可以方便地改動實踐參數(shù)的值而可以方便地

20、改動實踐參數(shù)的值 請分析以下程序運轉結果請分析以下程序運轉結果 Private Sub Change(x As Integer, y As Integer)本程序將參數(shù)x,y的值互換Dim t As Integert = xx = yy =t在窗體上輸出結果Print x=; x, y=; yEnd Sub Private Sub Form_Click()Dim a As IntegerDim b As Integera=3:b=4Change a,bPrint a=; a, b=; bEnd Sub運轉結果:x=4 y=3a=4 b=3我們發(fā)現(xiàn),調用Change過程后,實踐參數(shù)a,b的值也發(fā)

21、生了變化,這就是援用傳送參數(shù)的執(zhí)行效果。 2按值傳送參數(shù)按值傳送參數(shù) 顧名思義,按值傳送參數(shù)就是只把實踐顧名思義,按值傳送參數(shù)就是只把實踐參數(shù)的數(shù)值傳送給過程,也稱傳值方式。參數(shù)的數(shù)值傳送給過程,也稱傳值方式。換句話說,傳送給過程的只是實踐參數(shù)換句話說,傳送給過程的只是實踐參數(shù)的副本,因此,即使過程調用時改動了的副本,因此,即使過程調用時改動了方式參數(shù)的值,實踐參數(shù)也不會改動。方式參數(shù)的值,實踐參數(shù)也不會改動。方式參數(shù)前加上關鍵字方式參數(shù)前加上關鍵字ByVal 將上例的過程定義改為:將上例的過程定義改為:Private Sub Change(ByVal x As Integer, ByVal

22、y As Integer) 請分析程序運轉結果請分析程序運轉結果運轉結果:x=4 y=3 a=3 b=4 4.4鍵盤和鼠標運用技巧鍵盤和鼠標運用技巧 驅動驅動VB程序運轉的主要動力是事件程序運轉的主要動力是事件呼應。在呼應。在VB呼應的一切事件中,數(shù)呼應的一切事件中,數(shù)目最多也最重要的是對鍵盤和鼠標目最多也最重要的是對鍵盤和鼠標呼應的事件。由于這兩個設備是用呼應的事件。由于這兩個設備是用戶與運用程序交互的主要工具。戶與運用程序交互的主要工具。 4.4.1呼應鍵盤事件呼應鍵盤事件 常用的鍵盤事件主要有常用的鍵盤事件主要有KeyPress、KeyUp和和KeyDown它們被觸發(fā)的緣由分別是:它們被

23、觸發(fā)的緣由分別是:KeyPress事件:用戶按下了某事件:用戶按下了某Ascii字符字符的鍵,因此它并不是對一切的鍵盤均呼的鍵,因此它并不是對一切的鍵盤均呼應,比如鍵盤上的刪除鍵應,比如鍵盤上的刪除鍵“Delete鍵。鍵。KeyDown和和KeyUp事件:按下或釋放鍵事件:按下或釋放鍵盤上的恣意鍵時均會觸發(fā)此事件,包括盤上的恣意鍵時均會觸發(fā)此事件,包括刪除刪除“Delete鍵。鍵。 要深化了解鍵盤事件的呼應機制,要深化了解鍵盤事件的呼應機制,還必需從對象的焦點說起還必需從對象的焦點說起 1焦點處置焦點處置 設置控件焦點主要有兩種方法設置控件焦點主要有兩種方法一是在程序運轉的時候,經過鼠標選一是

24、在程序運轉的時候,經過鼠標選擇操作或控件的擇操作或控件的SetFocus方法來實現(xiàn);方法來實現(xiàn);另一種是在程序設計階段預先設置控另一種是在程序設計階段預先設置控件的件的TabIndex屬性,然后在運轉期經屬性,然后在運轉期經過按過按Tab鍵,實現(xiàn)控件焦點的挪動。鍵,實現(xiàn)控件焦點的挪動。 2. SendKeys過程過程 SendKeys Tab 發(fā)送一個Tab鍵SendKeys A 10 發(fā)送十個A鍵SendKeys Enter 發(fā)送一個回車鍵SendKeys Left 3 發(fā)送三個左移鍵SendKeys F1 發(fā)送一個F1鍵 SendKeys CapsLock 發(fā)送一個大寫切換鍵 焦點挪動演示

25、焦點挪動演示每當按下回車,焦點自動下移,加快輸入速度Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) If keyasii = 13 Then SendKeys Tab End If End Sub 4.4.2呼應鼠標事件呼應鼠標事件 除了我們曾經熟習的除了我們曾經熟習的Click、DblClick事件外,事件外,VB還提供了其他還提供了其他鼠標控制功能。鼠標控制功能。 1改動鼠標的外形改動鼠標的外形 VB提供了提供了15種鼠標外形,同時支持種鼠標外形,同時支持用戶自定義功能。用戶自定義功能。 在不同的場所運用不

26、同外形的鼠標在不同的場所運用不同外形的鼠標是是Windows運用程序的一種界面風運用程序的一種界面風格,這不僅可減少用戶的單調感,格,這不僅可減少用戶的單調感,更重要的是起到信息提示的作用更重要的是起到信息提示的作用 比如,比如,當需求用戶長時間等待時,我們可以將當需求用戶長時間等待時,我們可以將鼠標改為沙漏外形;鼠標改為沙漏外形;當需求用戶輸入時,可以將鼠標設置成當需求用戶輸入時,可以將鼠標設置成I型型 2運用自定義鼠標外形運用自定義鼠標外形 假設將假設將MousePointer的值設置成的值設置成99,那么,那么可以運用自定義鼠標外形了??梢赃\用自定義鼠標外形了。根本方法是:根本方法是:首

27、先找一些光標首先找一些光標*.Cur或圖標或圖標*.Ico文件文件然后經過然后經過MouseIcon屬性完成設置,操作屬性完成設置,操作方法也比較簡便。方法也比較簡便。 3MouseDown和和MouseUp事件事件 Click是鼠標操作中最常用的事件,它相是鼠標操作中最常用的事件,它相當于鍵盤的當于鍵盤的KeyPress事件。事件。但發(fā)生在它之前和之后的但發(fā)生在它之前和之后的MouseDown、MouseUp也非常有用,它們比也非常有用,它們比Click事件事件功能更強大,可以區(qū)別出鼠標的左、中、功能更強大,可以區(qū)別出鼠標的左、中、右按鈕。右按鈕。利用它可以編寫利用它可以編寫Shift、Ct

28、rl、Alt等鍵盤等鍵盤按鍵與鼠標組合操作的功能按鍵與鼠標組合操作的功能 鼠標和鍵盤事件綜合演示鼠標和鍵盤事件綜合演示總之總之作為一種功能強大的可視化編程言語,作為一種功能強大的可視化編程言語,VBVB帶給我們的還遠遠不只這些。但我們帶給我們的還遠遠不只這些。但我們只需從適用出發(fā),先掌握了這些適用且只需從適用出發(fā),先掌握了這些適用且常用的編程技巧,才有能夠成為高級程常用的編程技巧,才有能夠成為高級程序員序員劉世峰劉世峰 本章習題本章習題一、單項選擇題一、單項選擇題1Dim A (1 To 6,1 To 5)定義的數(shù)組包含的元素個數(shù)是定義的數(shù)組包含的元素個數(shù)是A30 B25C42 D動態(tài)變化動態(tài)變化2可以實現(xiàn)可以實現(xiàn)“窗體總在最前端界面效果的窗體總在最前端界面效果的API函數(shù)是函數(shù)是ASetWindowPos BSetWindowAPICSetWindowShape DDeclareAPI3假設創(chuàng)建了命令按鈕數(shù)組控件,那么假設創(chuàng)建了命令按鈕數(shù)組控件,那么Click事件的參數(shù)是事

溫馨提示

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

評論

0/150

提交評論