




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 VB.Net程序設計基礎 Visual Studio.NET是Microsoft公司針對互聯(lián)網推出的新一代可視化開發(fā)工具。Visual Basic.NET就是支持該結構的編程語言之一。 Visual Basic.NET :面向對象的可視化程序設計語言事件驅動程序 基于Windows程序的基本特點。面向對象編程(OOP) 將特征屬性抽象為變量,行為方法編寫為函數。用戶界面 窗體和控件、菜單等可視化應用程序集成開發(fā)環(huán)境 編輯、調試、運行VB.NET的程序開發(fā)的特點解決方案:在.NET環(huán)境中,開發(fā)工作以解決方案的形式進行組織,每個解決方案包含一個或多個項目.項目:每個項目可以執(zhí)行一項不同的任
2、務,它由VB.NET代碼、圖片和文檔等相關文件的構成。編程的第一步是新建一個項目。 6.1.1 VB.NET簡介 6.1.2 VB.NET可視化集成開發(fā)環(huán)境 (1)啟動VB.NET: 開始/程序/Microsoft Visual Studio.NET2003“起始頁”區(qū)域 :顯示了最近打開過的項目鏈接及其修改日期 解決方案資源管理器子窗口 新建一個項目的操作步驟: (2)單擊“起始頁”中間區(qū)域中的“新建項目”或選擇“文件/新建/項目” (3) 在“新建項目”對話框中,在“項目類型”列表框中選擇“Visual Basic項目”;在“模板”列表框中選擇“Windows應用程序”模板;在“名稱”文本
3、框中輸入項目的名稱,這里輸入“project1”,并在其下方的“位置”列表框中為項目選定一個保存路徑。 (4)單擊“確定”按鈕,完成了“project1”項目的新建,進入了.NET開發(fā)環(huán)境。 控件工具箱 解決方案資源管理器 屬性窗口 設計窗口 雙擊窗體進入代碼窗口6.1.3 VB.NET中面向對象的基本概念 1對象和類 (1)對象:一個實體的抽象描述,包括屬性和方法,可以識別并響應事件。屬性: 對象中的數據,用來描述和反映對象特征的參數。方法: 對象中的程序過程, 可執(zhí)行的功能,作為方法供用戶直接調用。事件: 用戶或操作系統(tǒng)執(zhí)行的操作,如單擊控件、鼠標移動、鍵盤按下等。 在VB.NET程序設計
4、語言中,對象是程序設計的基本單元,也是設計時的核心。 (2) 類 :具有相同操作功能和相同屬性的對象的集合和抽象。 在VB.NET中,工具箱內列出的各種控件都是系統(tǒng)設計好的標準控件類。 當把控件設置在窗體上后,才把控件類實例化為對象,即創(chuàng)建了一個控件對象。例如:命令按鈕(Button)類,它集中了命令按鈕對象的共有特征。在把“命令按鈕”畫到窗體上之前,“命令按鈕”控件對象是不存在的,只有當把“命令按鈕”控件設置在窗體上后,才把類實例化為對象,即創(chuàng)建了一個命令按鈕控件對象。設置對象屬性的二種方法:(1)設計階段:在屬性窗口中設置(2)在程序代碼中設置。格式如下: 對象名.屬性=屬性值 2對象的屬
5、性、方法和事件 (1)對象屬性:用以描述和反映對象特征的參數。例如:Button1.Text=”打開” /設置一個對象名為“Button1”命令按鈕的Text屬性為“打開” Button1.ForeColor=Color.Red /設置“Button1”命令按鈕的字體顏色為紅色調用格式如下: 對象名.方法 (參數名表) 注:方括號內內容可省略例如: Text1.Focus() /用該方法把光標置于Text1文本框上。(2)對象方法:描述了該對象能執(zhí)行的動作。 是在對象上可執(zhí)行的動作。是由VB系統(tǒng)已設計好的過程、函數,可供用戶直接調用。(3)對象事件 :由VB.NET預先設置好的、能夠被對象設別
6、的動作。 例如單擊(Click)、DblClick(雙擊)等 。事件過程:事件的處理程序。格式如下:Private Sub 對象名稱_事件名稱(對象引用,事件信息)Handles 事件處理程序 事件過程代碼 End Sub 其中,“對象名稱”是對象的Name屬性,“事件名稱”是該對象能夠識別的事件,是VB.NET預先定義好并賦于該對象的。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Text = 打開 But
7、ton1.ForeColor = Color.Red End Sub6.1.4 創(chuàng)建一個簡單的應用程序實例1.建立程序窗體;2.在程序窗體上設置控件對象;3.確定控件對象的屬性;4.編寫對象的事件驅動代碼。5.程序運行和調試6.保存文件VB.NET程序的基本組成文件包括:解決方案文件(.sln)窗體文件(.frm)Basic模塊文件(.vb)資源文件(.resx) 每創(chuàng)建一個解決方案會生成一個文件夾,所有這些文件都在該文件夾下。 如要拷貝所開發(fā)程序,應該拷貝整個文件夾?!纠?-1】設計一個小程序。窗體的標題為“VB.NET應用程序設計示例”,在窗體上設置一個文本框顯示“您好,歡迎使用VB.NE
8、T”,兩個命令按鈕【下一步】和【結束】,單擊【下一步】按鈕時,文本框中顯示的內容改變?yōu)椤癡B.NET簡單易學,功能強大”,單擊【結束】按鈕時,程序結束。程序運行界面如圖6-5和6-6所示。 6.2 VB.NET基本語法 VB.NET作為一種程序設計語言同樣規(guī)定了編寫程序所必須的一些語言元素如常量、變量、基本語句、函數和過程等。 6.2.1數據類型、常量和變量1數據類型 數據類型確定數據在內存中的存儲容量和取值范圍等。VB.NET的基本數據類型可分為數值型、字符型、字符串型、邏輯型、日期型、對象型等。 表6-1 數值型數據類型數據類型類型符存儲空間范圍Byte(字節(jié)型)1個字節(jié)0 到 255(無
9、符號)Short(整型)2個字節(jié)-32 768 到 32 767Integer(整型)%4個字節(jié)-2 147 483 648 到2 147 483 647Long(長整數)&8個字節(jié)-9 223 372 036 854 775 808 到 9 223 372 036 854 775 807Single(單精度浮點數)!4個字節(jié)負數:-3.402 823E+38到 -1.401 298E-45;正數:1.401 298E-45到3.402 823E+38Double(雙精度浮點數)#8個字節(jié)負數:-1.797 693 134 862 31E308到 -4.940 656 458 412 47E-
10、324;正數:4.940 656 458 412 47E-324到1.797 693 134 862 31E308Decimal(數值型)16個字節(jié)0 到 79 228 162 514 264 337 593 543 950 335不帶小數點的數;0 到 7.922 816 251 426 433 759 354 395 033 5帶28位小數的數表6-2 其他數據類型數據類型類型符存儲空間范圍Boolean(邏輯型)2個字節(jié)True或FalseChar(字符型)2個字節(jié)一個字符Date(日期型)8個字節(jié)0001年1月1日 0:00:00到9999年12月31日 11:59:59Object(
11、對象型)4個字節(jié)任何類型數據都可存儲在該類型的變量中String(字符串)$實際可用內存空間0到大約20億個字符說明:1)Date類型用于表示日期或時間;常量需要用#括起來,格式為:#mm/dd/yyyy#,如:#02/15/2007#。2)Char類型只能接受一個用雙引號括起來的字符。String類型表示字符串。字符串是用雙引號括起來的字符序列,如ABC。String類型的缺省規(guī)定為可變長度的字符串,即在對字符串操作時,其長度可增可減。 2常量和變量(1)常量和變量的命名規(guī)則1)必須以英文字母(或漢字)開頭,后跟字母、漢字、數字或下劃線。字母大小寫意義相同。2)常量名、變量名的長度不能超過2
12、55個字符。3)在同一個有效范圍內,每個常量或變量的名稱必須唯一。4)不能使用VB.NET關鍵字作為常量和變量的名字。 例如: Dim x As Double 聲明雙精度型變量x Dim m%, v 聲明整型變量m和對象型變量v,如缺省類型則為Object Dim f As Boolean=False 聲明邏輯型變量f,并設置初值False (2) 變量聲明 基本語法格式: Dim 變量名類型說明符|As 類型 (3)常量 VB.NET中常量有兩種形式:直接常量和符號常量。例如:12、-1.23、a為直接常量。 符號常量 :用一個標識符來代表一個數值或字符串。定義符號常量的格式如下: Cons
13、t常量名As數據類型=表達式例如:Const UserName As String=John 符號常量UserName是字符串常量Const Max As Integer=100 符號常量Max是整型常量 6.2.2 運算符和表達式 1運算符 (1)算術運算符 (乘方運算符)、*(乘法運算符)、/(除法運算符)、(整除運算符)、Mod(模運算符)、+(加法運算符或正值運算符)、-(減法運算符或負值運算符)、&(連接運算符) 例如:196.7=2 19 Mod 6=1 19 Mod 6=1 23.67 Mod 7.88=0“abcd”+“efg“=”abcdefg“ ”123” + 123 =2
14、46123 & abcd“=123abcd “abc” + 123 (不允許) (2)復合賦值運算符在賦值運算符(=)之前加上一些算術運算符,可以構成復合的賦值運算符。例如:a+=3 等價于a=a+3 “+=”稱為“自反加賦值運算符” x*=y+8 等價于x=x*(y+8) “*=”稱為“自反乘賦值運算符” m=2 等價于m=m2 “=”稱為“自反指數賦值運算符”VB.NET中還可使用以下的復合賦值運算符:-=(自反減賦值運算符) /=(自反浮點除賦值運算符)=(自反整除賦值運算符) &=(自反字符串連接賦值運算符) (3)關系運算符 (大于運算符)、(小于運算符)、=(等于運算符)、(不等于
15、運算符)=(大于等于運算符)、 b Then 如果ab,交換a和b的值 t = a a = b b = t End If MsgBox(較小數 & a & & 較大數 & b, , 從小到大排序) 報告結果End Sub圖6-13 兩數排序結果或:If a b Then t = a:a = b:b = t 2)If語句格式2 If 條件 Then 語句1 Else 語句2 EndIf或:If 條件 Then 語句1 Else 語句2圖6-14 雙分支語句的流程圖條件表達式語句塊1語句塊2TrueFalse【例】計算分段函數的值程序1:Dim a, x, y As Singlea = Val(I
16、nputBox(請輸入a 的值, 計算分段函數)x = Val(InputBox(請輸入x 的值, 計算分段函數)If x -a) And (x a / 2 Then y = xMsgBox (a= & a & x= & x & y= & y)程序2If x -a) And (x a / 2 Then y = xEnd IfMsgBox (a= & a & x= & x & y= & y)3)多分支If語句If 條件表達式1 Then 語句塊1ElseIf 條件表達式2 Then 語句塊2 Else 語句塊n圖6-15 多分支語句的流程圖不管有幾個分支,當某條件滿足,執(zhí)行相應的語句塊,其余分支
17、不再執(zhí)行。4)If語句的嵌套If語句的嵌套是指If語句中的語句塊又包含If語句。語句格式如下;If 條件表達式1 Then If 條件表達式11 Then 語句塊1 EndIfEndIf(2)Select Case語句 Select Case語句也稱為情況語句,它可以用來實現多分支選擇結構程序。 語句格式:Select Case 表達式 Case 表達式列表1 語句塊1 Case 表達式列表2 語句塊2 Case Else 語句塊nEnd SelectCase子句的表達式可以由以下幾種形式構成: 表達式1 to 表達式2: Case 1 To 5 表達式值在1到5范圍內。Is運算表達式:Cas
18、e Is5 表達式的值大于5的值。枚舉常量:Case “q”, “Q” 表達式的值等于”q”或”Q”。多種表達混合:Case 1 To 5, IsMin 表達式的值在1到5或大于Min的值。測試表達式可以是變量、函數、數值表達式、字符串表達式或邏輯表達式。Case子句中表達式列表的數據類型應當與表達式的數據類型一致?!纠?-3】從鍵盤輸入一個字符,判斷它是大寫字母、小寫字母、數字字符還是其他字符。本例使用標簽Label1報告結果,首先在窗體上添加一個Label1。 Private Sub Form1_Click() Handles MyBase.Click Dim ch As Charch =
19、 InputBox(請輸入字符, 字符判斷, , 200, 200)Select Case chCase A To ZLabel1.Text = ch + 是大寫字母 Case a To zLabel1.Text = ch + 是小寫字母Case 0 To 9Label1.Text = ch + 是數字字符Case ElseLabel1.Text = ch + 是其他字符End SelectEnd Sub 3循環(huán)結構VB.NET提供了兩種類型的循環(huán)控制:計數循環(huán)控制與條件循環(huán)控制。 For I=1 To 10 Step 1 TextBox1.Text = TextBox1.Text & I &
20、 Next I一般用于循環(huán)次數已知的情況(1)計數循環(huán)控制語句(For Next語句)語法格式:For 循環(huán)變量 = 初值To 終值 Step 步長值 語句塊 Exit For 語句塊Next 循環(huán)變量 0 初值終值 =1 時,可省略終值=0 死循環(huán)步長循環(huán)次數圖6-17 For循環(huán)語句流程圖說明: (1)循環(huán)變量必須是數值型變量。(2)初值、終值、步長值可以是表達式。類型必須與循環(huán)變量的類型相同。(3)步長值可以是正數(初值小于終值)或負數(初值大于終值)。缺省值為1。(4)Exit For:退出循環(huán),執(zhí)行Next語句的后繼語句。(5)For與Next中間的語句稱為循環(huán)體,可以是多個語句。P
21、rivate Sub Form1_Click() Handles MyBase.ClickDim s As Single, num As Integer, smax As Integer, smin As Integer s讀入成績, num學號, smax最高分, smin最低分Dim nummax As Integer, nummin As Integer nummax最高分學號, nummin最低分學號Dim sum As Integer, ave As Single, ch As String sum總分, ave平均分, ch為InputBox提示smax = -1 : smin =
22、 101 最高分賦值為-1, 最低分賦值為101For num = 1 To 10 ch = 請輸入第 & num & 個學生的成績 s = InputBox(ch) : 輸入學生成績 sum = sum + s 學生成績累加 If s smax Then smax = s : nummax = num 保留最高分及對應學號 If s smin Then smin = s : nummin = num 保留最低分及對應學號Next numave=sum / (num - 1) 計算平均成績, 注意學生總數為num-1MsgBox(最高分= & smax & 學號= & nummax & vbC
23、rLf & _ vbCrLf是回車換行符最低分= & smin & 學號= & nummin & vbCrLf & _ vbCrLf=Chr(13)+Chr(10) 總分= & sum & 平均分= & ave) End Sub【例6-4】學生分數統(tǒng)計。通過鍵盤輸入10個學生某一門課程的成績,如69,70,80,99,78。每個數據按前后次序對應學生的學號,即:第一個數據是1號學生的成績,第二個數據是2號學生的成績,最后一個數據是10號學生的成績。試編寫一程序統(tǒng)計該課程的總分、平均分、最高分及對應的學號、最低分及對應的學號。 (2)條件循環(huán)控制語句Do WhileLoop和Do UntilLo
24、op語句Do WhileLoopDo UntilLoop語句格式Do While條件 語句塊 Exit Do 語句塊LoopDo Until條件 語句塊 Exit Do 語句塊Loop執(zhí)行流程舉例(密碼檢驗)PW=InputBox(輸入密碼) Do While PWABCD“ PW=InputBox(輸入密碼)LoopPW=InputBox(輸入密碼)Do Until PW=ABCD“ PW=InputBox(輸入密碼)Loop (2)條件循環(huán)控制語句2)DoLoop While和DoLoop Until語句Do WhileLoopDo UntilLoop語句格式Do 語句塊 Exit Do
25、語句塊Loop While條件 Do 語句塊 Exit Do 語句塊Loop Until條件 執(zhí)行流程舉例(密碼檢驗)Do PW=InputBox(輸入密碼)Loop While PWABCD Do PW=InputBox(輸入密碼)Loop Until PW=ABCD 【例6-5】編寫一個譯碼程序,將一個由大寫字母組成的英語句子譯成數字代碼。譯碼規(guī)則是:以數字1代替字母A、數字2代替字母B、數字26代替字母Z,如遇空格則輸出*號。英語句子以句號結束。 Private Sub Form1_Click() Handles MyBase.Click Dim Code As Integer, Let
26、ter As String TextBox1.Text = Letter = InputBox(請輸入一個大寫字母(輸入小數點結束程序):) Do While Letter . If Letter = Then TextBox1.Text = TextBox1.Text & * & Space(3) Space(3)是3個空格字符串 Else Code = Asc(Letter) - Asc(A) + 1 TextBox1.Text = TextBox1.Text & Code & Space(3) End If Letter = InputBox(請輸入一個大寫字母(輸入小數點結束程序):)
27、 Loop TextBox1.Text = TextBox1.Text & . End Sub 譯碼算法如下: Code=ASC(Letter)-ASC(A)+1 (3)循環(huán)嵌套 所謂循環(huán)嵌套就是在一個循環(huán)結構的循環(huán)體內包含另一個或多個循環(huán)結構,也稱為多重循環(huán)。 對于循環(huán)的嵌套,要注意以下事項:1)內循環(huán)變量與外循環(huán)變量不能同名;2)外循環(huán)必須完全包含內循環(huán),不能交叉;3)不能從循環(huán)體外轉向循環(huán)體內,也不能從外循環(huán)轉向內循環(huán), 反之則可以?!纠?-6】編寫一個程序輸出九九乘法表。該程序窗體界面有1個命令按鈕Button1和1個文本框TextBox1,需將TextBox1的Multiline屬性
28、設置為True,并拖至足夠大。 For m = 1 To 9 For n = 1 To 9 k = m * n If k = 10 Then TextBox1.Text = TextBox1.Text & k & Else TextBox1.Text = TextBox1.Text & k & EndIf Next n TextBox1.Text = TextBox1.Text & vbCrLf Next m外重循環(huán)執(zhí)行一次,內重循環(huán)執(zhí)行一遍。6.2.6 數組 1數組的定義 一維數組定義格式: Dim 數組名(下標上界)As 類型名稱注意:下標下界為0,一維數組的大小為上界+1。 無數據類型表
29、示Object類。例如:Dim A (10) As Integer 定義了一個一維數組,該數組的名字為A,類型為Integer(整型),該數組由11個數組元素組成,即A (0) A (10))二維數組定義格式:Dim 數組名(第一維下標上界,第二維下標上界)As 類型名稱例如:Dim Page(1,2) As Integer定義了一個二維數組,該數組的名字為Page,類型為Integer(整型),共6個數組元素,分別是:Page(0,0)、Page(0,1)、Page(0,2)Page(1,0)、Page(1,1)、Page(1,2) 2數組的初始化和引用 (1)數組的初始化 1)一維數組元素
30、初始化格式如下: Dim 數組名( )As 類型名稱=值1,值2,值n注意:VB.NET規(guī)定不允許對指定上界的數組進行初始化,所以圓括號中必須為空,根據實際初值的個數確定數組的上界。 例如:Dim Season() As String = 春天,夏天,秋天,冬天定義了一個字符串數組Season該數組有4個初值,分別為: Season(0)=“春天”、Season(1)=“夏天”、 Season(2)=秋天、Season(3)=冬天2)二維數組元素初始化格式如下:Dim 數組名(,)As 類型名稱=第一行值,第二行值,第n行值例如:Dim AI(,) As Integer=1,2,3,4,5,6
31、定義了一個二維數組AI,內層花括號的個數表示數組的行數,每個內層花括號中數值個數表示數組的列數,該語句定義了一個2行3列的數組,即AI(2,3)。各元素的值分別為: AI(0,0)=1 AI(0,1)=2 AI(0,2)=3 AI(1,0)=4 AI(1,1)=5 AI(1,2)=6 (2)數組元素的引用 只能逐個引用數組元素而不能一次引用整個數組,數組元素的表示形式如下。 數組名(下標1,下標2) 其中,下標可以是整型常量或整型表達式,例如: A(5)、Season(2)、AI(1,1)、 AI(1+1,2)。數組元素可以出現在表達式中,也可以被賦值。 【例6-7】設計一個應用程序,使用數組
32、對新進榜歌曲按輸入順序逆序排列并顯示結果。該程序窗體界面有2個標簽Label1和Label2、1個命令按鈕Button1 。 Private Sub Button1_Click() Handles Button1.Click Const n = 6 聲明常量,歌曲數目為6首 Dim i As Integer, j As Integer i為循環(huán)控制變量, i和j為數組下標變量 Dim t As String t用于逆序排列的中間變量 Dim Song(n - 1) As String 聲明字符串數組變量,下標上界為n-1 為數組元素賦值,建立歌曲榜單,并顯示在標簽Label1上 For i =
33、 0 To n - 1 Song(i) = InputBox(請輸入歌曲名稱:) Label1.Text = Label1.Text & & Song(i)圖6-19程序運行結果 Next i 采用首尾元素對換完成逆序排列 For i = 0 To (n - 1) 2 j = n - 1 - i t = Song(i) Song(i) = Song(j) Song(j) = t Next i 在標簽Label2上輸出逆序排列結果 For i = 0 To n - 1 Label2.Text = Label2.Text & & Song(i) Next iEnd Sub 【例6-8】編寫程序,要
34、求能輸入4名學生的英語、數學、政治、物理四門課的考試成績。計算并輸出每名學生的平均分。 Private Sub Form1_Click() Handles MyBase.Click Const StuNum = 4, CourseNum = 4 Dim StuGrade(StuNum - 1, CourseNum - 1) As Single StuGrade成績二維數組 Dim AveGrade(StuNum - 1) As Single AveGrade平均成績一維數組 Dim CurrentGrade As String Dim i As Integer, j As Integer, k
35、 As Integer TextBox1.Text = TextBox1.Text & 學號 & 英語 _圖6-20 程序運行結果 & 數學 & 政治 & 物理 & 平均 & vbCrLf For i = 0 To StuNum - 1 k = 0 TextBox1.Text = TextBox1.Text & i & For j = 0 To CourseNum - 1 輸入一個人各門課成績, 并計算和,輸出成績 CurrentGrade = 請輸入 & i + 1 & 號學生第 _ & j + 1 & 門課程的成績 StuGrade(i, j) = InputBox(CurrentGrad
36、e) k = k + StuGrade(i, j) TextBox1.Text = TextBox1.Text & StuGrade(i, j) & Next j計算平均成績并輸出 AveGrade(i) = k / 4 TextBox1.Text = TextBox1.Text & AveGrade(i) & vbCrLf Next iEnd Sub 6.2.7 子程序過程與函數過程 通用過程分為兩類:子程序過程和函數過程。子程序過程又稱為Sub過程,函數過程稱為Function過程或自定義函數。Sub過程與自定義函數的區(qū)別在于:(1)過程較為靈活,可以帶參數,也可以不帶參數,而且不返回值。
37、(2)函數通常都要求帶參數,并有返回值。 1Sub過程的定義和調用(1)Sub過程的定義定義Sub過程的格式如下:Private|Public Static Sub 過程名(形式參數表) 局部變量和常量聲明 語句塊 Exit Sub 語句塊EndSub過程必須以Sub開始 使用說明:1)過程必須以Sub開始,EndSub結束。Public(默認)為全局(公有)過程,全局有效;Private 為局部(私有)過程,本模塊有效;Static為靜態(tài)過程(每次調用該過程后,都將保留其中的局部變量值)。2)形式參數(簡稱形參)是過程與主程序(調用過程的程序)之間進行數據傳遞的變量。多個參數之間用逗號分隔。
38、 形參有兩種類型,格式如下:ByVal | ByRef 參數名 () As 數據類型其中:ByVal表示該參數以傳值的方式傳遞數據(值傳遞)。ByRef表示以傳地址的方式傳遞數據。3)過程中說明的變量和常量僅在該過程中有效。4)Exit Sub表示退出過程,返回到調用過程的主程序的下一個語句繼續(xù)執(zhí)行。 (2)Sub過程的建立通用過程不屬于任何一個事件過程,因此不能用事件過程定義。通用過程可以在窗體、模塊或類中建立, 由程序員在程序代碼窗口直接輸入整個過程,包括框架。(3)Sub過程的調用Sub過程建立后,只有通過調用,Sub過程才能執(zhí)行。調用Sub過程的語句格式如下:Call 過程名(實在參數
39、表)過程調用時的參數稱為實在參數(簡稱實參)。實在參數的個數、類型以及前后次序必須和形參一致。另外,調用過程時可省略關鍵字Call。實參可以是用逗號分隔的變量、常數、表達式等。程序運行時,將實參按次序一一對應形參,即:將實參的值或地址傳送給對應的形參,而后在過程中進行相應的處理。 【例6-9】編寫一計算階乘的過程,并在主程序中調用。Public Sub JC(ByVal x, ByRef p) Dim k As Integer p = 1 For k = 1 To x p = p *k Next KEnd SubPrivate Sub Form1_Click() Handles MyBase.
40、Click Dim c As Long, m As Integer m = 10 Call JC(m, c) MsgBox (“10!=” & c)End SubJC(x,p)是個通用過程,形參x傳值,將接受調用程序傳遞來的數據(要計算階乘的具體數值);形參p是傳址,它將接受調用程序傳來的實參變量地址,可以將計算結果傳送回調用程序。事件過程Form1_Click中調用過程JC(m,c)計算階乘,m=10,對應形參x,即計算10階乘;變量c對應形參p,它接受過程JC傳送回的計算結果。用MsgBox報告計算結果。 2自定義函數的定義和調用 (1)自定義函數的定義定義格式如下: Private|Pu
41、blic Static Fuction 函數名( 參數表) As 類型 局部變量和常量聲明 語句塊 函數名=返回值 Exit Fuction 語句塊 函數名=返回值End Function使用說明: (1)在建立自定義函數時,與過程不同的是在參數表后有一選擇項“As類型”,它是自定義函數返回值的數據類型,若類型缺省,則為Object類型。 (2)在函數體內必須將函數的計算結果值賦予函數名,這是函數返回值所必需的。 (3)函數參數表的具體格式與過程參數相同。不論有無參數,函數名后面的括號均不能省略。 【例6-10】編寫一計算階乘的函數。Function FJC(ByVal x As Intege
42、r) As Integer Dim k As Integer, p As Integer p= 1 If x 0 ThenExit Function End If For k = 1 To x p = p * k Next k FJC = p End Function (2)自定義函數的調用若調用上述例題中的函數FJC,必須先確定一個變量用以接受函數的返回值,如下兩種形式都可以: M1=FJC(5)或 MsgBox(“5!” & FJC(5)6.3窗體與常用控件6.3.1窗體設計的基本方法1窗體的創(chuàng)建創(chuàng)建窗體有兩種方法:(1)當創(chuàng)建一個新的項目時,系統(tǒng)自動創(chuàng)建項目的第一個窗體,并將名稱默認為F
43、orm1。(2)在應用程序的開發(fā)過程中,可根據需要添加新的窗體。右單擊當前項目,選擇“添加/添加Windows窗體”命令或“添加/添加新項”,在“添加新項”對話框的“模板”列表框中,選擇“Windows窗體”,單擊【打開】按鈕,一個新窗體被添加到項目中,默認為Form2。 2窗體的屬性 窗體的屬性決定了窗體的外觀和操作,窗體的主要屬性和功能如下:Text:設置窗口標題欄中的標題。Size、Location:設置窗口顯示時的大小和位置。ForeColor、BackColor:設置窗體前景色和背景色。MinimizeBox、MaximizeBox:設置窗體在運行時是否可以最小化和最大化。FormB
44、orderStyle:設置窗體在運行時是否可以調整窗體的大小。BackgroundImage:設置對象的背景圖片,屬性值是圖片的路徑。Cursor:設置鼠標在該對象上時的形狀。Font:設置對象中文字的字體、大小、顏色和風格等。Icon:設置窗體的圖標。Opacity:設置窗體的不透明度級別。WindowState:設置窗體的窗口狀態(tài)。 注意:用Windows 窗體設計器創(chuàng)建的窗體是類(如Form1實質是一個類名),在運行時顯示的窗體是它的實例,對當前窗體來說,可以用“Me”作為對象名,而不能用“Form1”。例如,用程序代碼設置窗體的標題。應該寫成:Me.Text=”VB.NET應用程序”
45、若寫成:Form1.Text=”VB.NET應用程序”,則是錯誤的。 3窗體的方法窗體可以使用的主要方法如下: Activate:激活窗體并賦予焦點。 Close:關閉窗體。 Hide:隱藏窗體。 Show:顯示非模式窗體。 ShowDialog:顯示模式對話框窗體。使用方法的格式為:對象名.方法名表達式窗體的事件最常用的窗體事件如下: Load:在第一次顯示窗體前發(fā)生。 Click:在單擊窗體時發(fā)生。 DoubleClick:雙擊窗體時發(fā)生。 Closed:關閉窗體后發(fā)生。 GotFocus:窗體接收焦點時發(fā)生。 LostFocus:當窗體失去焦點時發(fā)生。 多重窗體一個VB應用程序可以包含多
46、個窗體,每個窗體相對獨立且具有自己的界面和程序代碼,以實現不同的功能、完成不同的任務。(1)設置啟動窗體在具有多個窗體的應用程序中,若不指定啟動對象,則窗體Form1為啟動對象??梢愿鶕贸绦蚬δ苌系男枰堰壿嬌献钕冗\行的窗體設置為啟動對象。重新設置啟動窗體的方法如下:1)選擇“項目屬性”命令。2)單擊“啟動對象”下拉按鈕,選擇某一個窗體或Main子過程作為啟動對象。(2)窗體的顯示在多重窗體程序中,除了啟動窗體外,其他窗體的顯示可以通過程序代碼來完成。例如:要顯示窗體Form2,則可以通過以下代碼來實現: Dim FrmDialog As Form2 定義一個Form2類的對象變量FrmD
47、ialogFrmDialog = New Form2 FrmDialog初始化,即創(chuàng)建一個實例賦予FrmDialogFrmDialog.Show() 顯示FrmDialog或采用以下語句:Dim FrmDialog As New Form2 FrmDialog.Show()6.3.2常用控件 標簽Label文本框TextBox命令按鈕Button單選按鈕復選框框架列表框組合框 1標簽(Label) :主要用于描述其它控件。 (1) 主要屬性 AutoSize:設置標簽的大小是否隨顯示內容自動調整。 取值類型Boolean,默認為False。 BorderStyle:設置標簽的邊框樣式。有3種選
48、擇:Fixed3D(三維邊框)、FixedSingle(單行邊框)、None(無邊框),默認為None。 Enabled:設置指示標簽是否可以對用戶交互作出響應,值為True或False。Image、ImageAlign:設置圖片以及圖片的對齊方式。Visible:設置該標簽是否在窗體上顯示。True(顯示)、False(不顯示)。默認為TrueText、TextAlign:設置在標簽中顯示的文本以及文本的對齊方式。 2文本框TextBox :允許用戶在應用程序中輸入文本。 (1) 主要屬性 Text:接受文本信息。運行程序時,用戶在文本框中輸入的內容都保存在該屬性中。MaxLength:設置
49、用戶在文本框中鍵入或粘貼的最大字符數。Multiline:設置是否允許顯示或輸入多行文本。PasswordChar:設置字符,程序運行時,輸入文本框中的字符全部顯示該字符。當Multiline為True時,該屬性不起作用,如該屬性設為“*”,則用戶的任何輸入都顯示為“*”。ScrollBars:設置滾動條的模式。Both(水平和垂直滾動條)、Horizontal(水平滾動條)、Vertical(垂直滾動條)、None(沒有滾動條)。SelectedText:設置或返回當前選定的文本內容。SelectionLength:設置或返回文本框中選定的字符數。SelectionStart:設置或返回文本
50、框中選定的文本起始點,第一個字符的位置是0。ReadOnly:設置文本框內容為只讀 。(2)事件 TextChanged:Text屬性值更改時觸發(fā)該事件。 GotFocus:當文本框得到焦點時觸發(fā)該事件。 LostFocus:當文本框失去焦點時觸發(fā)該事件。 KeyPress:當文本框具有焦點時,按下任意鍵就會觸發(fā)該事件。(3)方法 Focus:使文本框獲得焦點。 Copy:將文本框中的當前選定內容復制到剪貼板。 Cut:將文本框中的當前選定內容移動到剪貼板中。 Paste:用剪貼板的內容替換文本框中的當前選定內容。 SelectAll:選擇文本框中的所有內容。 3按鈕(Button) :主要用
51、于啟動應用程序。 。(1)屬性 Text、TextAlign:設置按鈕的標題文字及對齊方式。 BackColor、BackgroundImage:設置按鈕的背景色及背景圖片。 ForeColor:設置按鈕控件所包含文字或圖形的前景色。 Image、ImageAlign:設置前景圖片以及圖片的對齊方式。 FlatStyle :設置按鈕的平面樣式外觀。默認Standard(三維)。 Font:設置按鈕包含的文字的字體。(2)事件 命令按鈕最常見的事件:Click例EX4-1例EX4-24單選按鈕(RadioButton) :單選按鈕用于讓用戶在一組相關的選項中選擇一項。(1)屬性Text、Text
52、Align:設置控件的標題文字及其對齊方式。Checked:設置是否選中單選按鈕。選中單選鈕,Checked為True;否則,Checked為False。(2)事件單選按鈕的主要事件有:Click和CheckedChage事件。當用戶單擊單選鈕時,觸發(fā)Click事件;當Checked屬性值發(fā)生改變時,觸發(fā)CheckedChage事件。5復選框(CheckBox) :復選框用于讓用戶在一組可供選擇的項中選定其中的一項或多項。(1)屬性復選框的主要屬性有Text、Checked和CheckState。其中Text和Checked屬性的意義與單選按鈕相同。CheckState:表示復選框的狀態(tài)。Ch
53、ecked(被選中)、Unchecked(未被選中,默認值)、Indeterminate(顯示選中標記并變灰)(2)事件復選框的主要事件有:Click和CheckedChage事件。它們的觸發(fā)條件與單選按鈕相同。 6框架(GroupBox)框架的典型用途是建立包含多個單選按鈕的邏輯組,即當窗體上需要創(chuàng)建多組相互獨立的單選按鈕時,可用框架將每組單選按鈕分開,這樣對一個框架內的單選按鈕的操作就不會影響到框架外的單選按鈕。當需要將一組單選鈕或復選框放在框架中時,首先應設置框架,然后在框架中建立需要的控件對象。(1)屬性框架的主要屬性是Text,它被用來設置框架的標題。(2)事件框架的主要事件有Cli
54、ck和DoubleClick事件。(3)方法Add:將指定的控件添加到框架中。Clear:從框架中刪除所有控件。Remove:從框架中刪除指定的控件。例EX4-5 7列表框(ListBox) :用來顯示一組選項供用戶選擇,用戶一次可以選擇一項或多項。(1)屬性SelectionMode:設置在列表框中提供單項選擇或多項選擇Items:設置列表框中的列表項。SelectedItem:獲取或設置列表框中的當前選定項。SelectedIndex:獲取或設置列表框中當前選定項的索引(從零開始)。MultiColumn:獲取或設置列表框是否支持多列。(2)事件列表框的主要事件有Click、DoubleC
55、lick和SelectedIndexChanged事件。當SelectedIndex 屬性值更改時,SelectedIndexChanged事件將被觸發(fā)。(3)方法列表框常用的方法如下:Items.Add:向列表框中添加選項。Items.Remove:從列表框中刪除選項。Items.RemoveAt:從列表框中刪除指定索引的選項。Items.Insert:向列表框中插入選項。Items.Clear:清除列表框中所有的選項。SetSelected:選擇或清除對列表框中指定項的選定。 8組合框(ComBox) :是列表框和文本框的組合,用戶可以從列表框中選擇選項或在文本框中輸入新的文本。當用戶從列
56、表框中選定某項時,該選項會顯示在文本框中。組合框和列表框的屬性、事件和方法大致相同,下面介紹組合框獨有的一些屬性。DropDownStyle:設置組合框的樣式。DropDown(下拉組合框)、 DropDownList(下拉列表框)、Simple(簡單組合框)。MaxDropDownItems:設置要在組合框的下拉部分中顯示的最大項數。MaxDropDownWidth:設置組合框下拉部分的寬度。Text:設置組合框的文本。組合框的常用事件為DropDown事件,單擊組合框的下拉按鈕時觸發(fā)該事件。例EX4-3例EX4-46.3.3菜單設計主菜單:通常位于應用程序窗口的頂部,它系統(tǒng)而集中地體現了應用程序的功能,用戶可單擊菜單命令來完成全部(或大部分)程序功能。上下文有關菜單:也叫快捷菜單(或稱彈出菜單),當用戶右單擊窗體或控件時彈出。MainMenu控件 和Contextmenu控件 ,分別用來設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030寵物屋行業(yè)市場現狀供需分析及投資評估規(guī)劃分析研究報告
- 九年級英語上冊Unit3 Safety Lesson15 My Helmet Saved MyLife(單元整體+課時教學設計)新版冀教版
- 2025-2030婦科藥項目可行性研究報告
- 2025-2030女性護理產業(yè)行業(yè)市場現狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030多脆香薄餅市場發(fā)展現狀調查及供需格局分析預測研究報告
- 2025-2030壁扇行業(yè)風險投資態(tài)勢及投融資策略指引報告
- 2025-2030城市配送產業(yè)政府戰(zhàn)略管理與區(qū)域發(fā)展戰(zhàn)略研究咨詢報告
- 2025-2030吹干機行業(yè)市場發(fā)展分析及投資前景研究報告
- 2025-2030雙氧水行業(yè)風險投資態(tài)勢及投融資策略指引報告
- 人教部編版七年級語文上冊(新課標單元整體教學設計+課時教學設計):字音復習
- 電動摩托車項目可行性實施報告
- 甲殼素、殼聚糖材料
- 菜鳥驛站招商加盟合同范本
- 2024年高考地理真題完全解讀(甘肅卷)
- DL∕T 806-2013 火力發(fā)電廠循環(huán)水用阻垢緩蝕劑
- 人教版 九年級上冊音樂 第二單元 鱒魚 教案
- 四年級美術測國測復習題答案
- 《寬容別人 快樂自己》班會課件
- 2024光伏電站索懸柔性支架施工方案
- 仲裁法全套課件
- 教育家精神專題講座課件
評論
0/150
提交評論