全國二級(jí)VB教程補(bǔ)充內(nèi)容
《全國二級(jí)VB教程補(bǔ)充內(nèi)容》由會(huì)員分享,可在線閱讀,更多相關(guān)《全國二級(jí)VB教程補(bǔ)充內(nèi)容(87頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1,對(duì)江蘇版新編Visual Basic程序設(shè)計(jì)教程的補(bǔ)充,全國計(jì)算機(jī)等級(jí)考試 二級(jí)VB教程,紡織服裝學(xué)院數(shù)字紡織教研室 2010.6.8,,2,說明:,本教學(xué)內(nèi)容是對(duì)江蘇省高校新編 Visual Basic程序設(shè)計(jì)教程的補(bǔ)充。 文中表述時(shí)采用的白色文字,表示為已學(xué)過的知識(shí),目的是使新講述的知識(shí)與原有知識(shí)進(jìn)行有機(jī)銜接。 文中表述時(shí)采用的黃色(含其它顏色)文字,表示為新知識(shí)。 程序代碼通常使用白色。,3,一、制作工具欄,工具欄為Windows98 / 2000 / XP 應(yīng)用程序常用的標(biāo)準(zhǔn)功能。它提供菜單命令的快速訪問。,(一) 使用控件創(chuàng)建工具欄,1、首先在工具箱中添加“Toolbar控件”(
2、工具欄控件)與“ImageList控件”(圖象列表控件),方法:將鼠標(biāo)移到工具箱上,單擊鼠標(biāo)右鍵,選擇“部件”。在控件標(biāo)簽下選擇“MicrosoftWindows Common Controls 6.0”, 單擊確定按鈕。,注意:在專業(yè)版和企業(yè)版才有此功能。,下轉(zhuǎn) 創(chuàng)建工具欄 完成的工具欄,4,,,,,,,a,b,c,下轉(zhuǎn) 創(chuàng)建工具欄 需制作的工具欄,5,2、將“Toolbar控件”與“ImageList控件”放到窗體中,,Toolbar控件,ImageList控件,,Toolbar對(duì)象,ImageList 對(duì)象,,,6,3、將按鈕圖形文件加到“ImageList控件”中。此控件主要是管理圖像
3、文件。,方法:選中ImageList控件,單擊鼠標(biāo)右鍵,選擇 “屬性”,出現(xiàn)以下窗口。選擇 “圖像” 標(biāo)簽”。,7,單擊 “插入圖片” 按鈕,在某個(gè)文件夾下找到要使用的圖片,并為每個(gè)圖片指定一 個(gè)關(guān)鍵字。單擊 “確定” 按鈕。,下轉(zhuǎn) 創(chuàng)建工具欄 需制作的工具欄,8,4、使用“Toolbar控件”建立按鈕。方法:選中“Toolbar控件”,單擊鼠標(biāo)右鍵,選擇“屬性”。出現(xiàn)如下窗口。,9,在“通用”標(biāo)簽下,在“圖像列表”下拉列表中選擇 ImageList 1 對(duì)象。,,10,在 “按鈕” 標(biāo)簽下,單擊 “插入按鈕”,在關(guān)鍵字處輸入 “new”, 在工具提示文本中輸入 “新建”,在圖像中輸入 “1”
4、,單擊 “確定” 按鈕。這時(shí)在工具欄按鈕上出現(xiàn)圖像。 重復(fù)以上步驟,將能創(chuàng)建多個(gè)工具欄按鈕。,,在程序代碼中出現(xiàn)的按鈕名稱。(必須要),,,,,注:必要時(shí) 可加標(biāo)題,,,下轉(zhuǎn) 創(chuàng)建工具欄 需制作的工具欄,11,完成的工具欄,添加了標(biāo)題的工具欄,添加了工具提示文本的效果,,,12,5、輸入各個(gè)按鈕的程序代碼,在設(shè)計(jì)狀態(tài),雙擊“Toolbar”對(duì)象,出現(xiàn)代碼窗口。,Private Sub Toolbar1_ButtonClick (ByVal Button As MSComctlLib.Button) Select Case Button.Key Case new Label1.Ca
5、ption = “ 新建一個(gè)文擋! Case open Label1.Caption = “ 打開一個(gè)文擋!” Case ”save” Label1.Caption = ” 保存一個(gè)文擋! Case print Label1.Caption = “ 打印一個(gè)文擋! End Select End Sub,13,,(二)補(bǔ)充知識(shí): 創(chuàng)建多窗體界面的二 種情況: 1、在一個(gè)工程中創(chuàng)建 多個(gè)并列窗體。 下轉(zhuǎn)VB開發(fā)環(huán)境作演示 2、在一個(gè)工程中創(chuàng)建 具有父子結(jié)構(gòu)的MDI 多窗體界面。 下轉(zhuǎn)VB開發(fā)環(huán)境作演示,并 列 窗 體,,父窗體,子窗體,,,,14,舉例:創(chuàng)建一個(gè)MD
6、I窗體。一個(gè)父窗體,二個(gè) 子窗體。在父窗體上制作一個(gè)菜單欄,菜單名 分別為窗體1、窗體2,并編程。 要求:當(dāng)點(diǎn)擊某菜單項(xiàng)時(shí),相應(yīng)的子窗體在父 窗體中顯示。,,15,Option Explicit Private Sub mnu1_Click() Form1.Show Form2.Hide End Sub Private Sub mnu2_Click() Form2.Show Form1.Hide End Sub,菜單項(xiàng)編程:,下轉(zhuǎn) MDI窗體演示,16,二、VB控制結(jié)構(gòu)及其語句,(一)分支結(jié)構(gòu)語句 1、單分支結(jié)構(gòu)語句 If e Then 或: If e Then
7、 End If 2、雙分支(標(biāo)準(zhǔn))結(jié)構(gòu)語句 If e Then Else End If,3、多分支結(jié)構(gòu)語句 If e1 Then Elseif e2 Then Elseif e3 Then Else End If,,,17,4、并列分支結(jié)構(gòu)語句(亦稱情況語句) Select Case e Case c1 Case c2 Case Else End Select,5、IIf 函數(shù) (1) IIf函數(shù)是“If-Then-Else”結(jié)構(gòu)的簡寫版本,可用來執(zhí)行簡單的條件判
8、斷操作。 IIf是 “ Immediate If ”的縮略詞。 (2)函數(shù)格式: result=Iif (條件,True部分,F(xiàn)alse部分) 說明:1)result指函數(shù)的返回值 2)“條件”是一個(gè)邏輯表達(dá)式,,18,當(dāng)條件為真時(shí),Iif函數(shù)返回“True部分”,而當(dāng)條件為假時(shí),返回“False部分”。 3)“True”或“False部分”可以是表達(dá)式、變量或其他函數(shù)。 4)Iif函數(shù)中的3個(gè)參數(shù)都不能省略。 舉例1 : 相當(dāng)于: r=Iif(a5,1,2) If a5 Then Print r r=1 Else
9、 r=2 End if Print r,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-1,19,舉例2:使用IIF函數(shù)判斷D的值,試直接采用Print語句輸出結(jié)果。,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-2,Private Sub Form_Click() Dim d As Integer d = InputBox(請(qǐng)輸入D值, 直接采用Print, 0) Print IIf(d 12, D大于12, D小于12) End Sub,舉例3:試求分段函數(shù) y=,4 + 3x x=0,,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-3,Private Sub Com
10、mand1_Click() Dim x As Integer, y As Integer x = InputBox(, , 0) y = IIf(x < 0, 4 + 3 * x, 10 - x) Text1.Text = y End Sub,20,(二)無條件轉(zhuǎn)向語句GoTo 1、概念:Goto語句用于無條件改變程序執(zhí)行的順序。例如跳過程序的某一部分去執(zhí)行另一部分,或返回已經(jīng)執(zhí)行過的某語句使之重復(fù)執(zhí)行。 2、語句格式: GoTo 標(biāo)號(hào) | 行號(hào) 說明:1)標(biāo)號(hào) | 行號(hào)用于指明程序?qū)⑥D(zhuǎn)移至的目標(biāo) 語句的邏輯位置。 2)標(biāo)號(hào)是一個(gè)以字母開頭的標(biāo)識(shí)符,其后必 帶冒號(hào)。例如 again
11、: ,start: 。行號(hào)是以數(shù)字表示的。 例如:10,20,258等。在程序中標(biāo)號(hào)、行號(hào)必須是 惟一的。 3)GoTo語句總是在一個(gè)過程中使用。,21,舉例4:從鍵盤輸入a,b,c三個(gè)值,判斷a+b是否小于c,若 滿足則結(jié)束程序。試采用GoTo語句,且僅使用行號(hào)。,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-4,Private Sub Form_Click() Dim a As Single, b As Single, c As Single 10 a = Val(InputBox(請(qǐng)輸入A值)) b = Val(InputBox(請(qǐng)輸入B值)) c = Val(InputBox(請(qǐng)輸入
12、C值)) If a + b =c,繼續(xù)輸入! GoTo 10 50 Print a; b; c; a+b 13、 =c,繼續(xù)輸入! GoTo Start 50 Print a; b; c; a+b 14、 GoTo 500 End If 500 Print n; ! = ; k End Sub,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-6,求n階乘的值 求次數(shù) 判斷I值,,,,24,(三)具有并列分支結(jié)構(gòu)功能的 On - GoTo語句 1)功能:實(shí)現(xiàn)并列分支功能,依據(jù)條件判斷從多種處 理方案中選擇一種。 2)格式: On 數(shù)值表達(dá)式 GoTo 行號(hào)表列 | 標(biāo)號(hào)表列 3)On - GoTo 語句執(zhí)行過程: 首先計(jì)算“數(shù)值表達(dá)式”的值,若為小數(shù)則自動(dòng)四舍 五入求整,之后依據(jù)該值決定轉(zhuǎn)移到第幾行號(hào)或標(biāo)號(hào)。 On k GoTo 行/標(biāo)1, 行/標(biāo)2, 行/標(biāo)3, 行號(hào)/標(biāo)號(hào)4 k=1 15、 k=2 k=3 k=4,,,,,,,,,,,,,,25,舉例7:設(shè)某時(shí)期的銀行存款年利率如下: 1-活期 2.5% 2-定期一年 5% 3-定期二年 7.5% 4-定期三年 9% 5-定期五年 11% 6-定期八年 13% 以上1、2 6代表存款類別,從鍵盤輸入存款類別, 計(jì)算出一年后所得的本利之和。試應(yīng)用 on-GoTo語句 編寫程序。 令:存款額為 A 存款類別為 k 利率為 P 解:,26,A、用戶界面:,27,Private Sub Command1_Click() Dim a As Sing 16、le, k As Integer, p As Single Text1.SetFocus a = Val(Text1.Text) Text2.SetFocus k = Val(Text2.Text) If k 6 Then k = 6 On k GoTo 10, start, 30, 40, 50, 60 10 p = 0.025 GoTo 100 start: p = 0.05 :GoTo 100 30 p = 0.075 : GoTo 100 40 p = 0.09 : GoTo 100 50 p = 0.11 : GoTo 100 60 p = 0.13 : GoTo 10 17、0 100 Text3 = Str(Format(a * p, 00###,###.##)) Text4 = Str(Format(a * (1 + p), 00###,###,###.##)) End Sub,,B、用戶程序:,A - 存款額 K - 存款類別 P - 利率,28,Private Sub Command2_Click() Text1 = Text2 = Text3 = Text4 = Text1.SetFocus End Sub Private Sub Command3_Click() Unload Me End Sub,下轉(zhuǎn):二VB控制結(jié)構(gòu)及其語句-7,注意:在 18、實(shí)際編程時(shí),無特別的必要,請(qǐng)不要使用 GoTo 語句與 On - GoTo 語句,因?yàn)樵诔绦蜉^長時(shí)易使程序走向紊亂,造成編程錯(cuò)誤!僅在考試時(shí)試題要求時(shí)才應(yīng)用?。。?29,三、鍵盤 KeyAscii Print End Sub,32,舉例:設(shè)計(jì)一個(gè)能對(duì)輸入值進(jìn)行限止、分流的應(yīng)用程序。其中阿拉伯?dāng)?shù)字0(ASCII碼 48)- 9(ASCII碼 57)在Text1中回顯。除此不充許,僅在Text2中顯示。,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 3,Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then MsgBox “不 19、充許!在Text2中顯示, 16 Text2.Text = Text2 KeyAscii End Sub Private Sub Command1_Click() Text1 = 學(xué)習(xí)VB” End Sub Private Sub Command2_Click() End End Sub,,,無法顯示,,,,34,7、KeyPress事件可作用的對(duì)象有: 窗體、文本框、滾動(dòng)條、列表框、圖片框、復(fù)選框 組合框、命令按鈕以及與文件有關(guān)的控件。 不能響應(yīng)該事件(即無鍵盤焦點(diǎn))的有:標(biāo)簽框、框架、圖像框、時(shí)鐘等。,35,(二)鍵盤的KeyDown(按下)和KeyUp(抬起)事件,1、 KeyDo 20、wn、KeyUp事件的一般格式: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) End Sub Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer) End Sub,,2、事件參數(shù):二種形式 1)KeyCode As Integer, Shift As Integer 用于單個(gè)控件(常 用) 2)Index As Integer 用于控件數(shù)組(不常用),,3、參數(shù)含義: 復(fù)習(xí):我們已經(jīng)學(xué)過 KeyPress (KeyAscii) 返回“ 21、字符”的Ascii碼的值 例鍵 A:若鍵入的是大寫的 A,則值為 65 若鍵入的是小寫的 a,則值為 97,,,36,KeyDown (KeyCode) 返回“鍵”的值 KeyUp,,,,“鍵”的值以大寫的字母的Ascii碼為準(zhǔn)。例鍵“A”,無論是“A”還是“a”,值只有65。也就是說:KeyCode只認(rèn)“鍵”(不分大小寫)。 注意:大鍵盤上的數(shù)字鍵與小鍵盤(數(shù)字鍵盤)上相同的數(shù)字鍵的 KeyCode 是不一樣的。對(duì)于有上檔字符和下檔字符的鍵,其 KeyCode 均為下檔字符的Ascii碼值。以下是 KeyCode 與 KeyAscii 比較:,鍵(字符) KeyCode 22、KeyAscii 鍵(字符) KeyCode KeyAscii A --; Hex(KeyCode); ; Print ElseIf KeyCode = 13 Then i = 0 Print: Print Else Print Chr(KeyCode); --; Hex(KeyCode); ; End If End Sub,1) 程序,38,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 5,2)用戶界面 鍵盤 KeyCode 碼表(十六進(jìn)制),A:41H = ( 4 * 16 1 +1 * 16 0 ) D= (64 + 1)D = 65D,AZ,1 0, 23、F1F10,39,KeyDown (Shift) 返回3個(gè)轉(zhuǎn)換鍵(Shift、 KeyUp Ctrl、Alt)的二進(jìn)制值。,,,,按下Shift鍵 001B 1D 按下Ctrl 鍵 010B 2D 按下 Alt 鍵 100B 4D 若以組合的形式同時(shí)按下以上二個(gè)或三個(gè)鍵,則Shift 參數(shù)返回的是二者或三者之和值。,,,,十進(jìn)制數(shù) 二進(jìn)制數(shù) 作用 十進(jìn)制數(shù) 二進(jìn)制數(shù) 作用 0 000 末按轉(zhuǎn)換鍵 4 100 按下Alt鍵 1 001 按下Shift鍵 5 101 24、按下Alt+Shift鍵 2 010 按下Ctrl鍵 6 110 按下Alt+Ctrl鍵 3 011 按下Ctrl+Shift鍵 7 111 按下Alt+Ctrl+Shift鍵,Shift參數(shù)表(三個(gè)轉(zhuǎn)換鍵編碼表),40,舉例6:在窗體上建立一個(gè)標(biāo)簽,將按鍵產(chǎn)生的KeyCode參數(shù)的值賦予標(biāo)簽的 Caption。以演示KeyCode的值,并驗(yàn)證 KeyDown(壓下)與 KeyUp(抬起)事件,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 6,Option Explicit Private Sub Form_KeyDown(KeyCode As_ 25、 Integer, Shift As Integer) Label1.Caption = Str(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As_ Integer, Shift As Integer) Label1.Caption = End Sub,按下A,抬起A,41,舉例7:在窗體上建立一個(gè)標(biāo)簽,將按鍵產(chǎn)生的 Shift參數(shù)的值賦予標(biāo)簽的 Caption。以演示 Shift 的值。并驗(yàn)證 KeyDown(壓下)事件,KeyUp(抬起)事件,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 7,Option Explicit Pr 26、ivate Sub Form_KeyDown(KeyCode As_ Integer, Shift As Integer) Label1.Caption = Str(Shift) End Sub Private Sub Form_KeyUp(KeyCode As_ Integer, Shift As Integer) Label1.Caption = “” End Sub,壓下Alt,42,舉例8:設(shè)計(jì)組合鍵( Shift +Ctrl)用于文本框Text1顯示“我愛中華”的功能 設(shè)計(jì)組合鍵(Shift+F2)用于工程“退出”功能 預(yù)備知識(shí): VB規(guī)定:可用以下語句 27、判斷是否操作了Shift、Ctrl、Alt 若按下了Shift鍵 則 Shift And Shift 0 若按下了Ctrl 鍵 則 Shift And Ctrl 0 若按下了 Alt 鍵 則 Shift And Alt 0,1)用戶界面:,1)用戶程序:,按下Shift+Ctrl,,43,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 8,Option Explicit Private Const Shift = 1 Const用于定義符號(hào)常量Shift,以下同 Private Const ctrl = 2 Private Const key_F2 = x Form1.Mou 28、sePointer = x x = x + 1 If x = 16 Then x = 0 End Sub,,57,2、在屬性窗口中設(shè)置屬性,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 18,1)在設(shè)計(jì)態(tài)時(shí),選中某對(duì)象(窗體、控件)。 2)在屬性窗口中找到 MousePointer 屬性條,之后 在下拉菜單中選擇某屬性。,58,(五)鼠標(biāo)對(duì)對(duì)象的拖放,一、與拖放有關(guān)的屬性、事件和方法 1、DragMode 屬性 設(shè)置為人工拖放:屬性值 = 0(默認(rèn)) 設(shè)置為自動(dòng)拖放:屬性值 = 1 設(shè)置方法: (1)設(shè)計(jì)態(tài)時(shí)在屬性窗口中設(shè)置 (2)程序代碼中設(shè)置 例:pictuer1.DragMode = 1 29、注意:當(dāng)一個(gè)對(duì)象的 DragMode 屬性設(shè)置為1時(shí),該 對(duì)象不再響應(yīng) Click 和 MouseDown 事件。 2、DragIcon 屬性 在拖放對(duì)象時(shí)用于代表對(duì)象的圖標(biāo),59,二、事件 1、DragDrop事件 當(dāng)把對(duì)象拖放到目標(biāo)后,若抬起鼠標(biāo)鍵,則產(chǎn)生該事 件。 2、DragOver事件 當(dāng)拖動(dòng)對(duì)象越過一個(gè)控件時(shí),產(chǎn)生DragOver事件。 3、事件過程格式:,Private Sub Picture1_DragDrop(Source As Control, X As_ Single, Y As Single) End Sub,Private Sub P 30、icture1_DragOver(Source As Control, X As_ Single, Y As Single,State As Intrger) End Sub,4、事件過程參數(shù): Source: 對(duì)象變量,類型為控件。該參數(shù)含有被拖,60,動(dòng)對(duì)象的屬性,例:if Source.Name=“Folder” Then 用來判斷被拖動(dòng)對(duì)象的 Name 屬性是否為“Folder”. X , y 參數(shù)是抬起鼠標(biāo)鍵放下對(duì)象時(shí)鼠標(biāo)光標(biāo)的位置。 State:有三個(gè)值。 0 鼠標(biāo)光標(biāo)正進(jìn)入目標(biāo)對(duì)象的區(qū)域 1 鼠標(biāo)光標(biāo)正退出目標(biāo)對(duì)象的區(qū)域 2 鼠標(biāo)光標(biāo)正位于目標(biāo)對(duì)象 31、的區(qū)域之內(nèi) 三、方法: 方法有 Move 和 Drag, Drag 用于手動(dòng)拖放操作。 Drag 格式: 控件 . Drag 整數(shù) 0 取消指定控件的拖放 1 當(dāng)Drag方法出現(xiàn)在控件的事件過程中時(shí), 啟動(dòng)控件的拖放,61,2 結(jié)束控件的拖放,并發(fā)出一個(gè)DragDrop事件,四、鼠標(biāo)對(duì)對(duì)象的拖放 1、自動(dòng)拖放 舉例17:設(shè)計(jì)一個(gè)簡單的自動(dòng)拖放實(shí)例 (不使用 Drag ) 1)在窗體上建立一個(gè)圖片框,框中裝入圖標(biāo)文件(在 設(shè)計(jì)態(tài)時(shí)于屬性窗口的 Picture 屬性中選取圖標(biāo)) 2)將屬性窗口的 DragMode 屬性設(shè)置為1-Automatic (即自動(dòng)拖放模式) 3)設(shè)計(jì)DragDro 32、p事件過程,(一)用戶界面:,(二)用戶程序:,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 19,Private Sub Form_DragDrop(Source_ As Control, X As Single, Y As Single) Picture1.Move X, Y End Sub,圖標(biāo)可見,,62,舉例18:設(shè)計(jì)一個(gè)簡單的自動(dòng)拖放實(shí)例。要求:平時(shí) 圖標(biāo)不可見,運(yùn)行時(shí)圖標(biāo)才顯現(xiàn)。 1)在窗體上建立一個(gè)圖片框,框中裝入圖標(biāo)文件(在 設(shè)計(jì)態(tài)時(shí)于屬性窗口的 DragIcon 屬性中選取圖標(biāo),或 在程序代碼中指明裝入的圖標(biāo)的路徑) 2)將屬性窗口的DragMode屬性設(shè)計(jì)為1-Automatic 33、 (即自動(dòng)拖放模式) 3)設(shè)計(jì)DragDrop事件過程,(一)用戶界面:,圖標(biāo)不可見,,Private Sub Form_DragDrop(Source As Control, X As_ Single, Y As Single) Picture1.DragIcon = LoadPicture(d:tangClient.ico) Picture1.Move X, Y End Sub,(二)用戶程序:,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 20,63,2、手動(dòng)拖放,舉例19:一個(gè)手動(dòng)拖放實(shí)例,(一)用戶界面:,(二)用戶程序:,為實(shí)現(xiàn)手動(dòng)拖放,1)屬性窗口的 34、DragMode 屬性保持 為默認(rèn)值 “0 - Manual”(即人工方式),方法 Drag 為默認(rèn)值,64,Private Sub Form_Load() Picture1.DragIcon = Picture1.Picture End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift_ As Integer, X As Single, Y As Single) Picture1.Drag 1 End Sub Private Sub Picture1_MouseUp(Button As Intege 35、r, Shift As_ Integer, X As Single, Y As Single) Picture1.Drag 2 End Sub Private Sub Form_DragDrop(Source As Control, X As_ Single, Y As Single) Source.Move X, Y Source.Move (X - Source.Width / 2), (Y - Source.Height / 2) End Sub,,,,下轉(zhuǎn):第三部分 鍵盤與鼠標(biāo)事件 - 21,65,四、VB通用對(duì)話框,一 36、、對(duì)話框的定義與分類: 1、 對(duì)話框的定義: 具有顯示信息并接收用戶信息的功能框(實(shí)際上是一種特殊的窗體)稱對(duì)話框。 我們已學(xué)習(xí)過 InputBox 鍵盤輸入信息對(duì)話框與MsgBox 簡單信息消息框,這二種對(duì)話框僅具極簡單的功能。若對(duì)話功能較為復(fù)雜,怎么辦?這就需要用到通用對(duì)話框。 2、對(duì)話框的分類: 1)預(yù)定義對(duì)話框:,66,即VB提供的 InputBox 與MsgBox 。 2)自定義對(duì)話框(或稱定制對(duì)話框): 用戶通過創(chuàng)建用戶界面與編寫程序來獲得。例如教材第二章介紹的用于改變文字風(fēng)格的單選按鈕、復(fù)選框、框架等控件的使用,實(shí)際上就是一種自定義對(duì)話框。這種對(duì)話框由于要求用戶自己 37、定制,比較繁。,3)通用對(duì)話框: 用戶自己定制對(duì)話框比較繁,為此VB考慮到這種需求,已為用戶設(shè)置了專用控件:通用對(duì)話框控件。使用該控件能夠方便地設(shè)計(jì)出功,能較為復(fù)雜的對(duì)話框。,67,二、通用對(duì)話框: 1、通用對(duì)話框控件: 工具箱 部件 控件 Microsoft Common Dialog Control 6.0 確定 2、通用對(duì)話框的類型: 為方便用戶的使用,VB提供了幾種不同類型的通用對(duì)話框。,控件圖標(biāo),,,,,,,,,對(duì)話框類型 方法 Action屬性 打開文件 對(duì)象名. ShowOpen 對(duì)象名.Action= 1 保存文件 38、 對(duì)象名. ShowSave 對(duì)象名.Action= 2 選擇顏色 對(duì)象名. ShowColor 對(duì)象名.Action= 3 選擇字體 對(duì)象名. ShowFont 對(duì)象名.Action= 4 打印 對(duì)象名. ShowPrinter 對(duì)象名.Action= 5 調(diào)用Help文件 對(duì)象名. ShowHelp 對(duì)象名.Action= 6,,,對(duì)象名:CommonDialog1,68,3、通用對(duì)話框類型的舉例(基本特征): 1)文件對(duì)話框 (1)打開文件對(duì)話框:,下轉(zhuǎn):第四部分 通用對(duì)話框 - 1,Private Sub Command1_Click( 39、) CommonDialog1. ShowOpen End Sub,Private Sub Command1_Click() CommonDialog1. ShowSave End Sub,(2)保存文件對(duì)話框:,下轉(zhuǎn):第四部分 通用對(duì)話框 - 1,69,Private Sub Command1_Click() CommonDialog1. Action = 3 End Sub,2)選擇顏色對(duì)話框:,下轉(zhuǎn):第四部分 通用對(duì)話框 - 1,Private Sub Command1_Click() CommonDialog1. Action = 5 End Sub,3)打印對(duì)話框:,下轉(zhuǎn):第四部分 40、通用對(duì)話框 - 1,70,4、文件對(duì)話框的屬性設(shè)置(功能擴(kuò)展):,,1)DialogTitle 屬性 設(shè)置對(duì)話框的標(biāo)題。默認(rèn)值:“打開”、“保存”、“顏色”等;,1,,2,3,,4,,2)FileTitle - 設(shè)置當(dāng)前文件的文件名; 3)FileName - 設(shè)置當(dāng)前文件的文件名與路徑; 4)Filter - 設(shè)置文件類型,可設(shè)置多個(gè)文件類型,以供用戶在下拉列表中選擇;,上面介紹了通用對(duì)話框的最基本的特征與最簡功能。 在實(shí)際使用中,VB還提供了有關(guān)的屬性設(shè)置,以滿 足用戶的需要。,71,格式: 窗體. 對(duì)話框名. Filter = 描述符1 | 過濾器1 | 描述符2 | 過濾器2 | 例 41、如: CommonDialog1.Filter = (*.*)|*.*|(*.txt)|*.txt|(*.frm)|*.frm|(*.doc)|*.doc 5)FilterIndex 指定對(duì)話框啟動(dòng)后默認(rèn)的過濾器,上 例中若需選擇擴(kuò)展名為(.txt)的文件,則: CommonDialog1.FilterIndex = 2,,,,,6)Flags 設(shè)置對(duì)話框的外觀。 格式: 對(duì)象名.Flags = 值 ,72,文件對(duì)話框 Flags 取值表(部分):,符號(hào)常量 十六進(jìn)制數(shù) 十進(jìn)制數(shù) vbOFNReadOnly &H1& 1 在對(duì)話框中顯示“只讀 42、檢查”復(fù)選框 vbOFNOverwritePrompt &H2& 2 保存文件時(shí),若用磁盤上已有的文件名保存,則顯示一個(gè)信息框,詢問用 戶是否以當(dāng)前文件覆蓋原有文件 vbOFNHideReadOnly &H4& 4 取消“只讀檢查”復(fù)選框 vbOFNNoChangeDir &H8& 8 保留當(dāng)前目錄 vbOFNShowHelp &H10& 16 顯示一個(gè)“Help”按鈕 vbOFNNoReadOnlyReturn &H8000& 32768 選擇的文件不是只讀文件,并且不在一個(gè)寫保護(hù)的目錄內(nèi) 共計(jì)13項(xiàng),,7 43、3,Flags 值在代碼中的表達(dá)形式: CommonDialog1.Flags = vbOFNReadOnly (符號(hào)常量) CommonDialog1.Flags = &H1& (十六進(jìn)制數(shù)) CommonDialog1.Flags = 1 (十進(jìn)制數(shù)) CommonDialog1.Flags = vbOFNReadOnly Or vbOFNShowHelp CommonDialog1.Flags = &H1& Or 16 CommonDialog1.Flags = 17 (1 + 16),舉例: 編寫一個(gè)標(biāo)題為“打開文件對(duì)話框示例”的應(yīng)用程序: (1)創(chuàng)建 44、用戶界面,Command1,CommonDialog1,,,(2)編寫程序:,74,Option Explicit Private Sub Command1_Click() Dim a As String CommonDialog1.DialogTitle = 打開文件對(duì)話框示例! CommonDialog1.FileName = CommonDialog1.Filter = (*.*)|*.*|(*.txt)|*.txt|(*.frm)|*.frm|(*.doc)|*.doc CommonDialog1.FilterIndex = 2 CommonDialog1.Action = 1 If 45、 CommonDialog1.FileName = Then MsgBox 無文件名, 37, 檢查 Else Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) 文件路徑:d:tst1.txt 或 d:tst2.txt Input #1, a Print a Loop End If End Sub,下轉(zhuǎn):第四部分 通用對(duì)話框 - 2,75,5、顏色(Color)對(duì)話框: 本對(duì)話框的屬性較簡單(除有少量的與文件對(duì)話框相同的屬性外),主要屬性是Color 設(shè)置初始顏色。 顏色對(duì)話框的Flags 46、取值表:,符號(hào)常量 十六進(jìn)制數(shù) 十進(jìn)制數(shù) vbCCRGBInit &H1& 1 使Color屬性定義的顏色在首次顯示對(duì)話框時(shí)隨著顯示出來,必須使用 vbCCFullOpen &H2& 2 打開完整的顏色對(duì)話框(包括“規(guī)定自定義顏色”窗口) vbCCPreventFullOpen &H4& 4 禁用“規(guī)定自定義顏色”按鈕 vbCCShowHelp &H8& 8 顯示一個(gè)“Help”按鈕,,76,Flags使用說明: 程序代碼中必須使用: 對(duì)象名.Flags= vbCCRGBInit 47、,其作用是打開顏色對(duì)話框,并可設(shè)置或讀取 Color 的屬性。 Flags在代碼中的表達(dá)形式:,CommonDialog1.Flags = vbCCRGBInit (符號(hào)常量) CommonDialog1.Flags = &H1& (十六進(jìn)制數(shù)) CommonDialog1.Flags = 1 (十進(jìn)制數(shù)) CommonDialog1.Flags = &H1& CommonDialog1.Flags = 2 (打開完整的顏色對(duì)話框) CommonDialog1.Flags = 1 CommonDialog1.Flags = 4 (“規(guī)定自 48、定義顏色”按鈕無效) CommonDialog1.Flags = 1 CommonDialog1.Flags = 8 (顏色對(duì)話框上顯示“Help”按鈕),,,,,77,舉例:建立一個(gè)顏色對(duì)話框,編寫應(yīng)用程序,把對(duì)話框中選定的顏色賦予窗體作背景色: (1)創(chuàng)建用戶界面 (2)編程:,圖形框,Option Explicit Private Sub Command1_Click() CommonDialog1.Flags = 1 CommonDialog1.Flags = 2 CommonDialog1.Flags = 4 CommonDialog1.Flags = 8 CommonDialog 49、1.Color = BackColor CommonDialog1.ShowColor Picture1.BackColor = CommonDialog1.Color End Sub,下轉(zhuǎn):第四部分 通用對(duì)話框 - 3,,通用對(duì)話框控件,,78,6、字體(Font)對(duì)話框: 本對(duì)話框除有少量屬性與前面對(duì)話框相同外,主要屬性是 Flags 的取值與Font屬性。 字體對(duì)話框Flags 取值表:,符號(hào)常量 十六進(jìn)制數(shù) 十進(jìn)制數(shù) vbCFScreenFonts &H1& 1 只顯示屏幕字體 vbCFPrinterFonts &H2& 50、 2 只列出打印機(jī)字體 vbCFBoth &H3& 3 列出打印機(jī)和屏幕字體 vbCFShowHelp &H4& 4 顯示一個(gè)“Help”按鈕 共計(jì)15項(xiàng),,79,字體對(duì)話框 Font 的主要屬性:,FontName 字體名稱 FontSize 字體尺寸 FontBold 粗體 FontItaLic 斜體,FontStrikeThru 刪除線 FontUnderLine 下劃線 其它,,,舉例:用字體對(duì)話框設(shè)置文本框中顯示的字體 (1)創(chuàng)建用戶界面,文本框,通用對(duì)話框控件,,,80,(2)編程:,Option Explicit 51、Private Sub Command1_Click() CommonDialog1.Flags = 3 CommonDialog1.ShowFont Text1.FontItalic = CommonDialog1.FontItalic 注:各Font屬性也可以在控件屬性窗口中預(yù)選 Text1.FontBold = CommonDialog1.FontBold Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontStrikethru = CommonDi 52、alog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline End Sub,(3)程序運(yùn)行效果:,81,2,,1,,下轉(zhuǎn):第四部分 通用對(duì)話框 - 4,82,7、打?。≒rinter)對(duì)話框: 本對(duì)話框除有少量屬性與前面對(duì)話框相同外,主要屬性是 Flags、FromPage、ToPage、Max、Min、等屬性。 1)打印對(duì)話框 Flags 取值表:,符號(hào)常量 十六進(jìn)制數(shù) 十進(jìn)制數(shù) vbPDSelection &H1& 1 只顯示屏幕字體 vbPDPag 53、eNums &H2& 2 只列出打印機(jī)字體 vbPDNoSelection &H4& 4 列出打印機(jī)和屏幕字體 vbPDNoPageNume &H8& 8 取消頁碼計(jì)數(shù) vbPDShowHelp &H800& 2048 顯示一個(gè)“Help”按鈕 vbPDUseDevModeCopies &H4000& 262144 若打印機(jī)驅(qū)動(dòng)程序不支持多份拷貝,則設(shè)置這個(gè)值將禁止拷貝 共計(jì)15項(xiàng),,83,2)FromPage、ToPage屬性:指定要打印 54、文擋的頁碼范圍; 3)Max、Min屬性:用來限止FromPage、ToPage的范圍,其中Min指定所充許的起始頁碼, Max指定所充許的最后頁碼。,舉例:建立打印對(duì)話框 (1)創(chuàng)建用戶界面,通用對(duì)話框控件,,84,(2)編程:,Option Explicit Private Sub Form_Load() CommonDialog1.Min = 1 CommonDialog1.Max = 10 CommonDialog1.Flags = &H1& Or &H4000& CommonDialog1.CancelError = True 以上代碼用于單擊“取消”按鈕時(shí)給出出錯(cuò)信息 CommonDialog1.Action = 5 End Sub,(3)程序運(yùn)行效果:,85,輸入15,,1,,2,,3,,,當(dāng)輸入的頁碼正確時(shí),按下“打印”按鈕,,下轉(zhuǎn):第四部分 通用對(duì)話框 - 5,86,87,END !,2010.6.8修改,補(bǔ)充內(nèi)容結(jié)束 謝謝大家,
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- [部編人教版]三年級(jí)下冊(cè)蜜蜂課件
- [美術(shù)課件]探訪自然奇觀課件1
- 小學(xué)五年級(jí)上冊(cè)語文第二課小苗與大樹的對(duì)話PPT課件2
- 將陽光撒向心靈展示文稿
- 《好的故事》(完美版)優(yōu)秀課件
- 實(shí)際問題與二次函數(shù)
- 《太空一日》參考課件1
- 上腔靜脈綜合征
- 用厘米作單位量長度 (2)
- 冠心病教學(xué)查房
- 小兒發(fā)燒該如何護(hù)理
- 幼兒急疹的鑒別診斷
- 華南國際工業(yè)原料城項(xiàng)目品牌傳播構(gòu)想
- 頸椎雙開門術(shù)
- 人教新課標(biāo)三年級(jí)語文下冊(cè)《古詩兩首—詠柳3》