書名: Visual Basic實例精通作者名: 柴相花等編著本章字數(shù): 1709字更新時間: 2019-03-01 14:47:04
第一篇 基礎(chǔ)知識篇
第1章 VB語言基礎(chǔ)
閱讀本書的前提是讀者有一定的VB基礎(chǔ),因此對于VB的集成開發(fā)環(huán)境和VB的編程基礎(chǔ),尤其是創(chuàng)建一個VB應(yīng)用程序的步驟不再介紹。本書從VB的語言基礎(chǔ)開始,通過小實例講解VB中的相關(guān)知識。本章主要介紹VB的語言基礎(chǔ),即VB編程過程中最簡單的知識,同時也是最重要的知識,更是編程過程中最容易被編程者忽略和出錯的知識點。因此讀者應(yīng)該重視這部分的介紹。
1.1 標識符
標識符,顧名思義,是標識某個對象的符號,這個對象可以是變量、常量、過程和函數(shù)等。在VB中,標識符的定義有一定的規(guī)則,并且有一些標識符是VB中保留下來作為關(guān)鍵字使用的,因此在定義標識符時,要避免使用這些保留字。下面通過一系列小實例來說明標識符的定義規(guī)則和保留字的運用。
技術(shù)要點
在本實例中主要用到了 Form_ Load()事件,標識符定義整型變量。保留字,文本框TextBox控件數(shù)組和For循環(huán)語句,主要功能和用法如下:
● Form_ Load()事件,加載窗體時會觸發(fā)這個事件。雙擊對象窗口中的窗體時,如果該事件已經(jīng)在代碼窗口中創(chuàng)建,光標就會停留在該事件代碼段的開始位置;否則會創(chuàng)建該事件。
●運用標識符定義整型變量,即遵守標識符的命名規(guī)則,定義一個變量來表示某種含義。在本實例中,定義的變量i用來表示循環(huán)參數(shù)。
●保留字,也稱作關(guān)鍵字,是VB中保留下來的標識符,用來表示固定的含義。在本實例中用到的保留字有Private、As、For、To、Next等。
●文本框控件TextBox,主要用來顯示文本信息。顯示文本信息主要通過控件的Text屬性進行。
控件數(shù)組和For循環(huán)語句的功能和用法在后面的學(xué)習(xí)中詳細介紹。
實現(xiàn)代碼
Private Sub Form_Load() Dim i As Integer '定義整型變量,作為循環(huán)變量 For i = 0 To 7 'For循環(huán)語句 TxtWelcome(i).Visible = True '使得TxtWelcome控件數(shù)組可見 Next i TxtWelcome(0).Text = "歡" '給TxtWelcome控件數(shù)組賦值為"歡" TxtWelcome(1).Text = "迎" '給TxtWelcome控件數(shù)組賦值為"迎" TxtWelcome(2).Text = "進" '給TxtWelcome控件數(shù)組賦值為"進" TxtWelcome(3).Text = "入" '給TxtWelcome控件數(shù)組賦值為"入" TxtWelcome(4).Text = "VB" '給TxtWelcome控件數(shù)組賦值為" VB " TxtWelcome(5).Text = "世" '給TxtWelcome控件數(shù)組賦值為"世" TxtWelcome(6).Text = "界" '給TxtWelcome控件數(shù)組賦值為"界" TxtWelcome(7).Text = "!" '給TxtWelcome控件數(shù)組賦值為"!" End Sub
單擊工具欄中的保存按鈕,保存工程,然后,單擊工具欄中的啟動按鈕
,運行工程,程序運行結(jié)果如圖1.1所示。

圖1.1 程序運行界面圖
單擊工具欄中的結(jié)束按鈕,或者單擊運行窗口的關(guān)閉按鈕
,結(jié)束程序的運行。
源程序解讀
(1)在代碼中只有Form_ Load()事件,在該事件中,首先定義整型變量i,用來控制For循環(huán)語句的執(zhí)行。這里循環(huán)變量的定義要遵循標識符的命名規(guī)則:必須以字母開頭的字母、數(shù)字或下畫線的組合,長度不能超過255 個字符,并且不能和 VB 中的保留字重名。
(2)如果違反了以上規(guī)定,那么在代碼窗口會出現(xiàn)提示窗口。例如,當把i的命名變?yōu)開 i時,就會出現(xiàn)如圖1.2所示的提示窗口。如果把i的命名變?yōu)?i,就會出現(xiàn)如圖1.3所示的提示窗口。如果把i的命名變?yōu)锳s,就會出現(xiàn)如圖1.4所示的提示窗口。如果把i的命名改為其他的保留字,如For或Private,也會出現(xiàn)如圖1.3所示的提示窗口。定義變量i時用到了保留字As,VB中除了本實例中運用的保留字外,還有其他很多保留字,這里不再一一列舉。

圖1.2 以下畫線開頭命名標識符時出現(xiàn)的提示窗口

圖1.3 以數(shù)字開頭命名標識符時出現(xiàn)的提示窗口

圖1.4 以保留字As命名標識符時出現(xiàn)的提示窗口
(3)運用For循環(huán)語句,設(shè)置“TextBox”文本控件數(shù)組的Visible屬性為True,使文本框可見。最后對文本框控件數(shù)組的Text屬性賦值,分別為“歡”、“迎”、“進”、“入”、“VB”、“世”、“界”、“!”。
(4)運用End Sub語句關(guān)閉當前過程。
1.2 數(shù)據(jù)類型
上一節(jié)介紹了標識符,了解了標識符的命名規(guī)則和VB中的保留字,對于保留字,希望讀者在運用的過程中自己掌握。同時在上一節(jié)中,使用標識符定義整型變量,這里的“整型”就是數(shù)據(jù)類型。定義變量時,必須有一定的數(shù)據(jù)類型與之對應(yīng)。本節(jié)主要介紹數(shù)據(jù)類型,通過實例的介紹使讀者掌握各種數(shù)據(jù)類型的運用。
技術(shù)要點
本節(jié)主要運用的技術(shù)有組合框控件ComboBox及其AddItem方法和Click事件、標簽Label控件、文本框 TextBox 控件、Select Case 語句、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)。主要功能和用法如下:
●組合框控件ComboBox,主要用于從多種對象中逐個地選擇其中的一種對象。通常與Select Case語句配合使用,并且 Select Case語句出現(xiàn)在 ComboBox_ Click()事件中。
● AddItem方法,主要向組合框控件中添加各項,即各個對象。
●組合框控件ComboBox的Click事件,單擊組合框時,觸發(fā)該事件,主要完成選中某項時要完成的某種功能。
●標簽Label控件,主要用于顯示文本。一般通過其Caption屬性顯示出來。
●文本框TextBox控件在前面已經(jīng)介紹過。
● Select Case語句在后面詳細介紹。
●數(shù)據(jù)類型轉(zhuǎn)換函數(shù),主要用來在各數(shù)據(jù)類型之間相互轉(zhuǎn)換。本實例中運用的轉(zhuǎn)換函數(shù)有:CBool、CByte、CDate、CDbl、CInt、CLng和CStr,這些運用轉(zhuǎn)換函數(shù)的轉(zhuǎn)換方式都是顯示轉(zhuǎn)換。
說明:其他幾種類型的數(shù)據(jù)也有對應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換函數(shù),如 CCur轉(zhuǎn)換為貨幣型, CVar轉(zhuǎn)換為可變型,CVErr轉(zhuǎn)換為Error類型,但是這些轉(zhuǎn)換函數(shù)只適用于VB7.0以下的版本。
實現(xiàn)代碼
Private Sub CmbNumType_Click() Dim i As Single '定義單精度變量i i = 3.1415 '給變量i賦值為3.1415 Select Case CmbNumType.ListIndex 'Select Case語句 Case 0 TxtShow.Text = CInt(i) '顯示整型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Integer" '顯示類型 Case 1 TxtShow.Text = CLng(i) '顯示長整型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Long" '顯示類型 Case 2 TxtShow.Text = I '顯示單精度浮點型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Single" '顯示類型 Case 3 TxtShow.Text = CDbl(i) '顯示雙精度浮點型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Double" '顯示類型 Case 4 TxtShow.Text = CByte(i) '顯示字節(jié)型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Byte" '顯示類型 Case 5 TxtShow.Text = CStr(i) '顯示字符型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "String" '顯示類型 Case 6 TxtShow.Text = CBool(i) '顯示布爾型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Boolean" '顯示類型 Case 7 TxtShow.Text = CDate(i) '顯示日期型數(shù)據(jù) LabType.Caption = "數(shù)據(jù)類型為:" & "Date" '顯示類型 End Select End Sub '初始化,給"CmbNumType"組合框賦值 Private Sub Form_Load() CmbNumType.AddItem "整型" '給"CmbNumType"組合框添加"整型"項 CmbNumType.AddItem "長整型" '給"CmbNumType"組合框添加"長整型"項 CmbNumType.AddItem "單精度浮點型" '給"CmbNumType"組合框添加"單精度浮點型"項 CmbNumType.AddItem "雙精度浮點型" '給"CmbNumType"組合框添加"雙精度浮點型"項 CmbNumType.AddItem "字節(jié)型" '給"CmbNumType"組合框添加"字節(jié)型"項 CmbNumType.AddItem "字符型" '給"CmbNumType"組合框添加"字符型"項 CmbNumType.AddItem "布爾型" '給"CmbNumType"組合框添加"布爾型"項 CmbNumType.AddItem "日期型" '給"CmbNumType"組合框添加"日期型"項 End Sub
按Ctrl+S快捷鍵保存工程,然后按F5鍵運行工程。當選擇組合框中的“整型”選項時,運行結(jié)果如圖1.5所示。當選擇組合框中的“字符型”選項時,運行結(jié)果如圖1.6所示。當選擇組合框中的“布爾型”選項時,運行結(jié)果如圖1.7所示。當選擇組合框中的“日期型”選項時,運行結(jié)果如圖1.8所示。

圖1.5 數(shù)據(jù)類型為整型的運行圖

圖1.6 數(shù)據(jù)類型為字符型的運行圖

圖1.7 數(shù)據(jù)類型為布爾型的運行圖

圖1.8 數(shù)據(jù)類型為日期型的運行圖
源代碼解讀
(1)代碼在Form_ Load()事件中運用組合框的AddItem方法初始化組合框控件。添加數(shù)據(jù)類型分別為“整型”、“長整型”、“單精度浮點數(shù)”、“雙精度浮點數(shù)”、“字節(jié)型”、“字符型”、“布爾型”和“日期型”。除此之外,數(shù)據(jù)類型還有貨幣型(Currency)、可變型(Variant)和對象型(Object),這幾種類型在編程過程中不常用,所以只作為了解。
(2)當單擊“CmbNumType”組合框時,就觸發(fā)CmbNumType_ Click()事件。在該事件中完成的操作主要是根據(jù)選擇的數(shù)據(jù)類型顯示最終的數(shù)據(jù)和所選擇的數(shù)據(jù)類型。主要通過Select Case語句,根據(jù) CmbNumType的 ListIndex屬性確定選擇的數(shù)據(jù)類型。然后運用“TxtShow”文本框顯示該數(shù)據(jù)類型下的數(shù)據(jù),并通過“LabType”標簽顯示所選擇的數(shù)據(jù)類型。
1.3 常量和變量
上一節(jié)中介紹了數(shù)據(jù)類型的種類和各數(shù)據(jù)類型之間的轉(zhuǎn)換函數(shù),讀者可以對數(shù)據(jù)類型有更深入的認識。數(shù)據(jù)類型的選擇通常與常量和變量緊密相連,定義一個常量,要知道該常量的數(shù)據(jù)類型;同樣,定義變量的同時,要賦予該變量數(shù)據(jù)類型。本節(jié)來介紹一下常量和變量的有關(guān)知識。
技術(shù)要點
本節(jié)使用的主要技術(shù)是常量和變量的定義,主要用法如下:
●常量的定義分為系統(tǒng)內(nèi)部定義和用戶定義兩種。系統(tǒng)內(nèi)部定義的常量是由VB和控件提供的,在代碼中可以直接使用;在編程過程中應(yīng)該注意的是定義常量。
●變量的定義,也稱作變量的聲明,在使用一個變量之前必須提前聲明變量,變量的定義根據(jù)變量的類型進行定義,即不同的使用范圍聲明方式也不同。
用戶定義常量使用Const語句來實現(xiàn),其主要語法為:
[Public|Private]Const 常量名[As數(shù)據(jù)類型]=表達式
其中,Public和Private參數(shù)注明常量的適用范圍,Public表示常量為全局的,Private表示變量為局部的,這兩個參數(shù)都是可選的;“常量名”參數(shù)就是給常量命名,命名規(guī)則與標識符的命名規(guī)則一樣;“數(shù)據(jù)類型”表示常量的數(shù)據(jù)類型,一般可以省略,這時由后面的“表達式”參數(shù)來指明常量的數(shù)據(jù)類型。表達式可以是數(shù)值型常量、字符型常量、布爾型常量和日期型常量,也可以是由這幾種常量連同運算符組成的表達式。
變量的種類有普通局部變量、靜態(tài)局部變量、模塊變量和全局變量。這些變量的主要聲明語法分別如下:
Dim 變量名[As數(shù)據(jù)類型名] Static變量名[As數(shù)據(jù)類型名] Private變量名[As數(shù)據(jù)類型名] Public變量名[As數(shù)據(jù)類型名]
說明:這四種聲明方式中,最常用的聲明方式是第一種。當變量聲明為全局變量時,要注意變量名的命名應(yīng)盡量長,最好具有一定的意義,防止變量的重復(fù)聲明,造成沖突。
實現(xiàn)代碼
Const t = 2 '定義常量t作為第一個操作數(shù) Private Sub Form_Load() Dim i As Single '定義變量i,作為第二個操作數(shù) i = 1.56 '給變量賦值 TxtOne.Text = t '由文本框獲得第一個操作數(shù) TxtTwo.Text = I '由文本框獲得第二個操作數(shù) TxtResult.Text = TxtOne.Text * TxtTwo.Text '計算結(jié)果,并用文本框顯示出來 End Sub
保存工程并運行工程。單擊啟動按鈕后,程序的運行結(jié)果如圖1.9所示。

圖1.9 程序運行結(jié)果圖
源代碼解讀
(1)首先定義常量t并賦值為2,這樣常量默認為整型。給常量賦值之后,在后面代碼中就不能再重新賦值,否則運行工程時,會出現(xiàn)如圖1.10所示的提示窗口。

圖1.10 重復(fù)給常量賦值出現(xiàn)的提示框
(2)在Form_ Load()事件中,首先定義變量i,然后給變量i賦值。這里給i賦值之后可以在后面的代碼中再次給i賦值,但是文本框獲得的是變量i的最終賦值。例如,在語句i=1.56后,再添加語句i=1.6,那么運行結(jié)果如圖1.11所示。

圖1.11 再次給變量定義時出現(xiàn)的界面圖
(3)由文本框獲得兩個操作數(shù)之后,就可以計算兩個操作數(shù)的乘積,最終結(jié)果由TxtResult控件顯示出來。
說明:這里的結(jié)果為單精度浮點數(shù),出現(xiàn)了數(shù)據(jù)類型的隱式轉(zhuǎn)換,當一個整型量和一個單精度浮點數(shù)進行運算時,整型自動轉(zhuǎn)變?yōu)閱尉雀↑c數(shù)參與運算,結(jié)果也是單精度浮點數(shù)。
1.4 運算符
在上一節(jié)中介紹了常量和變量的定義與應(yīng)用,其中需要讀者了解的內(nèi)容除了常量和變量的命名規(guī)則之外,還要注意常量和變量的適用范圍,這樣才能在定義變量和常量時做到有的放矢。另外,在上一節(jié)實例中提到了兩個操作數(shù)的乘積,這里的乘法就是一種運算符。在VB中,運算符有多種類型,本節(jié)就詳細介紹幾種運算符的運用實例,即運用多種運算符進行相應(yīng)表達式的計算。
技術(shù)要點
本節(jié)使用的主要技術(shù)是運算符的使用。運算符主要運用在表達式中,代表某種運算功能的符號。使用運算符之前,首先應(yīng)該清楚運算符的分類,運算符大致可以分為四種:賦值運算符、數(shù)學(xué)運算符、關(guān)系運算符和邏輯運算符。其中最常用的是賦值運算符“=”,其主要語法為:
變量=值
其中,變量就是聲明過的常量或變量名,值就是對前面變量的賦值。
●數(shù)學(xué)運算符主要是為了進行數(shù)學(xué)運算,在本實例中用到的數(shù)學(xué)運算符有“加法運算符+”、“乘法運算符*”、“除法運算符/”、“整除運算符 \”、“求模運算符 Mod”,除此之外,數(shù)學(xué)運算符還有“減法運算符-”、“指數(shù)運算符^”、“連接字符串運算符&”。
●關(guān)系運算符主要用來確定兩個表達式之間的關(guān)系。在本實例中用到的關(guān)系運算符有“相等運算符=”、“大于運算符>”,除此之外,關(guān)系運算符還有“不等于運算符<>”、“小于運算符<”、“大于等于運算符> =”、“小于等于運算符< =”、“字符串模式匹配運算符Like”、“對象一致比較運算符Is”。
●邏輯運算符主要用于判斷表達式之間的邏輯關(guān)系,表達式可以為一個、兩個或多個。在本實例中用到的邏輯運算符是“或運算符Or”,除此之外,邏輯運算符還有“取反運算符Not”、“與運算符And”、“異或運算符Xor”、“等價運算符Eqv”、“蘊含運算符Imp”。
說明:運用這些運算符時要注意運算符之間的優(yōu)先關(guān)系。
實現(xiàn)代碼
Const x = 20 '定義常量x作為第一個操作數(shù) Const y = 3 '定義常量y作為第二個操作數(shù) Private Sub CmbYSF_Click() Text1.Text = x '獲得第一個操作數(shù) Text2.Text = y '獲得第二個操作數(shù) Select Case CmbYSF.ListIndex Case 0 '加法的情況 TxtResult.Text = CInt(Text1.Text)+ CInt(Text2.Text) '加法運算表達式 Label1.Caption = " +" '在表達式中顯示運算符 LabShow.Caption = "加法運算符" '顯示選中的運算符 Case 1 '乘法的情況 TxtResult.Text = Text1.Text * Text2.Text '乘法運算表達式 Label1.Caption = "*" '在表達式中顯示運算符 LabShow.Caption = "乘法運算符" '顯示選中的運算符 Case 2 '除法的情況 TxtResult.Text = Text1.Text/Text2.Text '除法運算表達式 Label1.Caption = "/" '在表達式中顯示運算符 LabShow.Caption = "除法運算符" '顯示選中的運算符 Case 3 '整除的情況 TxtResult.Text = Text1.Text \ Text2.Text '整除運算表達式 Label1.Caption = "\" '在表達式中顯示運算符 LabShow.Caption = "整除運算符" '顯示選中的運算符 Case 4 '求模的情況 TxtResult.Text = Text1.Text Mod Text2.Text '求模運算表達式 Label1.Caption = "Mod" '在表達式中顯示運算符 LabShow.Caption = "求模運算符" '顯示選中的運算符 Case 5 '相等的情況 TxtResult.Text = CInt(Text1.Text)= CInt(Text2.Text) '相等運算表達式 Label1.Caption = " =" '在表達式中顯示運算符 LabShow.Caption = "相等運算符" '顯示選中的運算符 Case 6 '大于的情況 TxtResult.Text = CInt(Text1.Text)> CInt(Text2.Text) '大于運算表達式 Label1.Caption =" >" '在表達式中顯示運算符 LabShow.Caption = "大于運算符" '顯示選中的運算符 Case 7 '或運算的情況 TxtResult.Text = Text1.Text Or Text2.Text '或運算表達式 Label1.Caption = "Or" '在表達式中顯示運算符 LabShow.Caption = "或運算符" '顯示選中的運算符 End Select End Sub '初始化給組合框中添加運算符 Private Sub Form_Load() CmbYSF.AddItem " +" '添加加法運算符 CmbYSF.AddItem "*" '添加乘法運算符 CmbYSF.AddItem "/" '添加除法運算符 CmbYSF.AddItem "\" '添加整除運算符 CmbYSF.AddItem "Mod" '添加求模運算符 CmbYSF.AddItem " =" '添加相等運算符 CmbYSF.AddItem " >" '添加大于運算符 CmbYSF.AddItem "Or" '添加或運算符 End Sub
保存工程并運行工程。當選擇組合框中的“+”選項時,運行結(jié)果如圖1.12所示。當選擇組合框中的“Mod”選項時,運行結(jié)果如圖1.13所示。當選擇組合框中的“=”選項時,運行結(jié)果如圖1.14所示。

圖1.12 加法運算結(jié)果圖

圖1.13 求模運算結(jié)果圖

圖1.14 相等運算結(jié)果圖
源代碼解讀
(1)代碼首先定義兩個常量x、y,分別賦值為20、3。然后,在Form_ Load()事件中初始化“CmbYSF”組合框。運用CmbYSF的AddItem方法加載各運算符:“+”、“*”、“/”、“\”、“Mod”、“=”、“>”、“Or”。
(2)單擊“CmbYSF”組合框時,就觸發(fā)CmbYSF_ Click()事件。在該事件中,首先由“Text1”文本框和“Text2”文本框獲得兩個常量作為操作數(shù)。然后運用Select Case語句,根據(jù)CmbYSF的ListIndex屬性,選擇不同的運算符進行運算。由“TxtResult”文本框的Text屬性,顯示最終的計算結(jié)果,并由“Label1”標簽顯示選擇的運算符。
1.5 表達式
在上一節(jié)中介紹了運算符的使用,通過學(xué)習(xí),相信讀者對運算符的運用有更清晰的認識,并已理解各類運算符之間的優(yōu)先關(guān)系。運算符的運用往往與表達式結(jié)合在一起,即運算符是表達式之間的某種運算功能。因此,本節(jié)就介紹表達式的有關(guān)知識,希望通過本節(jié)的介紹,讀者能夠更深入地理解表達式的含義及其應(yīng)用。
技術(shù)要點
本節(jié)實例中主要用到的技術(shù)是組合框ComboBox的嵌套使用及Clear方法,表達式功能和用法如下:
●組合框的嵌套使用,即在單擊一個組合框的Click事件中觸發(fā)另外一個組合框的事件,在后面章節(jié)中詳細介紹。
●組合框控件的Clear方法,主要作用是清空組合框中加載的內(nèi)容,這主要是為了進一步在組合框中加載內(nèi)容。
●表達式的使用,主要是為了參與某種運算從而完成某種功能。
使用表達式應(yīng)先了解表達式的種類,表達式有三種:算術(shù)表達式、關(guān)系表達式和邏輯表達式。
●算術(shù)表達式是由變量、常量或者函數(shù)與算術(shù)運算符組合而成的式子。主要運用在算術(shù)運算中。
●關(guān)系表達式是由操作數(shù)和關(guān)系運算符組合而成的式子,主要運用在If語句中。
●邏輯表達式是由操作數(shù)和邏輯運算符組合而成的式子。
注意:在運用表達式時,要注意書寫方式,否則可能出現(xiàn)錯誤。
實現(xiàn)代碼
Const x = 30,y = 7 '定義常量x,y Private Sub CmbExpr_Click() TxtOne.Text = x '獲得第一個操作數(shù) TxtTwo.Text = y '獲得第二個操作數(shù) Select Case CmbExpr.ListIndex Case 0 '算術(shù)表達式的情況 CmbOper.Clear '對組合框中的內(nèi)容進行清空 CmbOper.AddItem " +" '在"CmbOper"組合框中添加加法運算符 CmbOper.AddItem " -" '在"CmbOper"組合框中添加減法運算符 CmbOper.AddItem "*" '在"CmbOper"組合框中添加乘法運算符 CmbOper.AddItem "/" '在"CmbOper"組合框中添加除法運算符 CmbOper.AddItem "\" '在"CmbOper"組合框中添加整除運算符 CmbOper.AddItem "Mod" '在"CmbOper"組合框中添加求模運算符 CmbOper.AddItem "&" '在"CmbOper"組合框中添加連接運算符 CmbOper.AddItem "^" '在"CmbOper"組合框中添加指數(shù)運算符 Case 1 '關(guān)系表達式的情況 CmbOper.Clear '對組合框中的內(nèi)容進行清空 CmbOper.AddItem " =" '在"CmbOper"組合框中添加相等運算符 CmbOper.AddItem " < >" '在"CmbOper"組合框中添加不等于運算符 CmbOper.AddItem " >" '在"CmbOper"組合框中添加大于運算符 CmbOper.AddItem " <" '在"CmbOper"組合框中添加小于運算符 CmbOper.AddItem " > =" '在"CmbOper"組合框中添加大于等于運算符 CmbOper.AddItem " < =" '在"CmbOper"組合框中添加小于等于運算符 CmbOper.AddItem "Like" '在"CmbOper"組合框中添加模式匹配運算符 Case 2 '邏輯表達式的情況 CmbOper.Clear '對組合框中的內(nèi)容進行清空 CmbOper.AddItem "Not" '在"CmbOper"組合框中添加取反運算符 CmbOper.AddItem "And" '在"CmbOper"組合框中添加與運算符 CmbOper.AddItem "Or" '在"CmbOper"組合框中添加或運算符 CmbOper.AddItem "Xor" '在"CmbOper"組合框中添加異或運算符 CmbOper.AddItem "Eqv" '在"CmbOper"組合框中添加等價運算符 CmbOper.AddItem "Imp" '在"CmbOper"組合框中添加蘊含等運算符 End Select End Sub Private Sub CmbOper_Click() Select Case CmbExpr.ListIndex Case 0 Select Case CmbOper.ListIndex Case 0 '加法運算的情況 TxtResult.Text = CInt(TxtOne.Text)+ CInt(TxtTwo.Text) '加法運算 LabShow.Caption = "算術(shù)表達式中的加法運算" '運算類型 Case 1 '減法運算的情況 TxtResult.Text = CInt(TxtOne.Text)- CInt(TxtTwo.Text) '減法運算 LabShow.Caption = "算術(shù)表達式中的減法運算" '運算類型 Case 2 '乘法運算的情況 TxtResult.Text = CInt(TxtOne.Text)* CInt(TxtTwo.Text) '乘法運算 LabShow.Caption = "算術(shù)表達式中的乘法運算" '運算類型 Case 3 '除法運算的情況 TxtResult.Text = CInt(TxtOne.Text)/ CInt(TxtTwo.Text) '除法運算 LabShow.Caption = "算術(shù)表達式中的除法運算" '運算類型 Case 4 '整除運算的情況 TxtResult.Text = CInt(TxtOne.Text)\ CInt(TxtTwo.Text) '整除運算 LabShow.Caption = "算術(shù)表達式中的整除運算" '運算類型 Case 5 '求模運算的情況 TxtResult.Text = CInt(TxtOne.Text)Mod CInt(TxtTwo.Text) '求模運算 LabShow.Caption = "算術(shù)表達式中的求模運算" '運算類型 Case 6 '連接運算的情況 TxtResult.Text = TxtOne.Text & TxtTwo.Text '連接運算 LabShow.Caption = "算術(shù)表達式中的連接運算" '運算類型 Case 7 '指數(shù)運算的情況 TxtResult.Text = CInt(TxtOne.Text)^ CInt(TxtTwo.Text) '指數(shù)運算 LabShow.Caption = "算術(shù)表達式中的指數(shù)運算" '運算類型 End Select Case 1 Select Case CmbOper.ListIndex Case 0 '相等比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)=CInt(TxtTwo.Text) '相等比較運算 LabShow.Caption = "關(guān)系表達式中的相等比較運算" '運算類型 Case 1 '不等于比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)< >CInt(TxtTwo.Text) '不等于比較運算 LabShow.Caption = "關(guān)系表達式中的不等于比較運算" '運算類型 Case 2 '大于比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)>CInt(TxtTwo.Text) '大于比較運算 LabShow.Caption = "關(guān)系表達式中的大于比較運算" '運算類型 Case 3 '小于比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)<CInt(TxtTwo.Text) '小于比較運算 LabShow.Caption = "關(guān)系表達式中的小于比較運算" '運算類型 Case 4 '大于比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)> =CInt(TxtTwo.Text) '大于等于比較運算 LabShow.Caption = "關(guān)系表達式中的大于等于比較運算" '運算類型 Case 5 '小于比較運算的情況 TxtResult.Text=CInt(TxtOne.Text)< =CInt(TxtTwo.Text) '小于等于比較運算 LabShow.Caption = "關(guān)系表達式中的小于等于比較運算" '運算類型 Case 6 '模式匹配運算的情況 TxtResult.Text = TxtOne.Text Like TxtTwo.Text '模式匹配運算 LabShow.Caption = "關(guān)系表達式中的模式匹配運算" '運算類型 End Select Case 2 Select Case CmbOper.ListIndex Case 0 '取反運算的情況 TxtResult.Text = Not CInt(TxtTwo.Text) '取反運算 LabShow.Caption = "邏輯表達式中的取反運算" '顯示運算類型 Case 1 '與運算的情況 TxtResult.Text=CInt(TxtOne.Text)And CInt(TxtTwo.Text) '與運算 LabShow.Caption = "邏輯表達式中的與運算" '顯示運算類型 Case 2 '或運算的情況 TxtResult.Text=CInt(TxtOne.Text)Or CInt(TxtTwo.Text) '或運算 LabShow.Caption = "邏輯表達式中的或運算" '顯示運算類型 Case 3 '異或運算的情況 TxtResult.Text=CInt(TxtOne.Text)Xor CInt(TxtTwo.Text) '異或運算 LabShow.Caption = "邏輯表達式中的異或運算" '顯示運算類型 Case 4 '等價運算的情況 TxtResult.Text=CInt(TxtOne.Text)Eqv CInt(TxtTwo.Text) '等價運算 LabShow.Caption = "邏輯表達式中的等價運算" '顯示運算類型 Case 5 '蘊含運算的情況 TxtResult.Text=CInt(TxtOne.Text)Imp CInt(TxtTwo.Text) '蘊含運算 LabShow.Caption = "邏輯表達式中的蘊含運算" '顯示運算類型 End Select End Select End Sub '初始化"CmbExpr"組合框,添加表達式類型 Private Sub Form_Load() CmbExpr.AddItem "算術(shù)表達式" CmbExpr.AddItem "關(guān)系表達式" CmbExpr.AddItem "邏輯表達式" End Sub
保存工程并運行工程。當選擇組合框中的“+”選項時,運行結(jié)果如圖1.15所示。當選擇組合框中的“-”選項時,運行結(jié)果如圖1.16所示。當選擇組合框中的“*”選項時,運行結(jié)果如圖1.17所示。

圖1.15 加法運算結(jié)果圖

圖1.16 減法運算結(jié)果圖

圖1.17 乘法運算結(jié)果圖
源代碼解讀
(1)代碼首先定義兩個常量x、y,并且分別賦值為30、7。這兩個常量分別作為表達式中的第一個和第二個操作數(shù)。
(2)在Form_ Load()事件中,主要對“CmbExpr”組合框進行初始化。運用控件的AddItem方法加載表達式類型:“算術(shù)表達式”、“關(guān)系表達式”、“邏輯表達式”。當單擊“CmbExpr”組合框時,就會觸發(fā)CmbExpr_ Click()事件。
(3)在CmbExpr_ Click()事件中,執(zhí)行對“CmbOper”組合框的初始化。根據(jù)CmbExpr的ListIndex屬性,運用CmbOper的AddItem屬性,對“CmbOper”組合框加載不同的內(nèi)容。
(4)當CmbExpr中的內(nèi)容為算術(shù)表達式時,需要加載算術(shù)運算符:“+”、“-”、“*”、“/”、“\”、“Mod”、“&”、“^”。當CmbExpr中的內(nèi)容為關(guān)系表達式時,需要加載關(guān)系運算符:“=”、“< >”、“>”、“<”、“> =”、“< =”、“Like”。當CmbExpr中的內(nèi)容為邏輯表達式時,需要加載邏輯運算符:“Not”、“And”、“Or”、“Xor”、“Eqv”、“Imp”。另外,加載內(nèi)容之前要運用CmbOper的Clear方法清空原來的內(nèi)容。
(5)當單擊“CmbOper”組合框時,就觸發(fā)CmbOper_ Click()事件。在CmbOper_ Click()事件中,根據(jù)CmbExpr的ListIndex屬性和CmbOper的ListIndex屬性進行表達式的運算,由程序可以看出共有21種運算,這里不再一一解釋。
- AngularJS入門與進階
- Essential Angular
- Android NDK Beginner’s Guide
- Internet of Things with the Arduino Yún
- Building Mapping Applications with QGIS
- Java設(shè)計模式及實踐
- SQL Server從入門到精通(第3版)
- IBM Cognos Business Intelligence 10.1 Dashboarding cookbook
- Access 2010中文版項目教程
- CodeIgniter Web Application Blueprints
- Mastering XenApp?
- Spring Boot 2+Thymeleaf企業(yè)應(yīng)用實戰(zhàn)
- 大話程序員:從入門到優(yōu)秀全攻略
- Mastering React Test:Driven Development
- 流程讓管理更高效:流程管理全套方案制作、設(shè)計與優(yōu)化