VB程序設(shè)計(jì)菜單對(duì)話框及多重窗體課件_第1頁
VB程序設(shè)計(jì)菜單對(duì)話框及多重窗體課件_第2頁
VB程序設(shè)計(jì)菜單對(duì)話框及多重窗體課件_第3頁
VB程序設(shè)計(jì)菜單對(duì)話框及多重窗體課件_第4頁
VB程序設(shè)計(jì)菜單對(duì)話框及多重窗體課件_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 1 1 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2 2 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 提出問題提出問題 大家在以前就已接觸和學(xué)習(xí)過不少應(yīng)用程序,比如大家在以前就已接觸和學(xué)習(xí)過不少應(yīng)用程序,比如OfficeOffice 中的文字處理程序中的文字處理程序WordWord、表格處理程序、表格處理程序ExcelExcel等,已經(jīng)使用過等,已經(jīng)使用過 這些程序中強(qiáng)大的菜單功能,它們是如何進(jìn)行設(shè)計(jì)的呢?這些程序中強(qiáng)大的菜單功能,它們是如何進(jìn)行設(shè)計(jì)的呢? 我們自己能否設(shè)計(jì)類似的菜單呢?我們自己能否設(shè)計(jì)類似的菜單

2、呢? 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3 3 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 本章主要內(nèi)容:本章主要內(nèi)容: 1:菜單:菜單 2:對(duì)話框:對(duì)話框 3:多重窗體:多重窗體 4:VB工程結(jié)構(gòu)工程結(jié)構(gòu) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4 4 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 兩種菜單類型:兩種菜單類型:下拉式菜單下拉式菜單、彈出式菜單、彈出式菜單 1 1 菜單組成菜單組成 ( (標(biāo)題標(biāo)題) )包含若干個(gè)菜單項(xiàng)包含若干個(gè)菜單項(xiàng), ,它放置在菜單的最它放置在菜單的最頂層頂層, , 它可以下拉出下一級(jí)菜單它可以下拉出下一級(jí)菜單( (子菜單子菜單) ) 對(duì)應(yīng)一個(gè)程序模塊對(duì)

3、應(yīng)一個(gè)程序模塊, ,執(zhí)行命令后子菜單自動(dòng)消失執(zhí)行命令后子菜單自動(dòng)消失 包含子菜單標(biāo)題和菜單命令包含子菜單標(biāo)題和菜單命令 可對(duì)子菜單進(jìn)行分組可對(duì)子菜單進(jìn)行分組 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5 5 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 子子 菜菜 單單 菜單命令菜單命令 主菜單欄主菜單欄 子菜單標(biāo)題子菜單標(biāo)題 分隔條分隔條 子子 菜菜 單單 主菜單主菜單( (標(biāo)題標(biāo)題) ) 對(duì)應(yīng)一個(gè)程序模塊對(duì)應(yīng)一個(gè)程序模塊, ,執(zhí)執(zhí) 行命令后子菜單自動(dòng)消失行命令后子菜單自動(dòng)消失可對(duì)子可對(duì)子 菜單進(jìn)行分組菜單進(jìn)行分組 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 6 6 職 VB程序設(shè)計(jì)菜

4、單程序設(shè)計(jì) 1 1:菜單控件:菜單控件 菜單項(xiàng)菜單項(xiàng)( (主菜單項(xiàng)或子菜單項(xiàng)主菜單項(xiàng)或子菜單項(xiàng)) )也稱為也稱為 菜單項(xiàng)具有其屬性、事件、方法菜單項(xiàng)具有其屬性、事件、方法 通過通過“菜單編輯器菜單編輯器”完成設(shè)計(jì)完成設(shè)計(jì) 2 2:菜單編輯器:菜單編輯器 使設(shè)計(jì)菜單欄的窗體成為當(dāng)前窗體使設(shè)計(jì)菜單欄的窗體成為當(dāng)前窗體 執(zhí)行執(zhí)行“工具工具”菜單的菜單的“菜單編輯器菜單編輯器”命令命令( (或或單擊標(biāo)準(zhǔn)工單擊標(biāo)準(zhǔn)工 具欄的具欄的“菜單編輯器菜單編輯器”按鈕按鈕,或或從窗體快捷菜單中選擇從窗體快捷菜單中選擇“菜單菜單 編輯器編輯器”命令命令) ),打開,打開“菜單編輯器菜單編輯器”窗口窗口 3 3:菜單

5、編輯器結(jié)構(gòu):菜單編輯器結(jié)構(gòu) 屬性區(qū)屬性區(qū) 輸入或修改菜單項(xiàng),設(shè)置菜單項(xiàng)屬性輸入或修改菜單項(xiàng),設(shè)置菜單項(xiàng)屬性 編輯區(qū)編輯區(qū) 對(duì)輸入的菜單項(xiàng)進(jìn)行編輯操作對(duì)輸入的菜單項(xiàng)進(jìn)行編輯操作 菜單列表區(qū)菜單列表區(qū) 顯示菜單項(xiàng)的分級(jí)列表顯示菜單項(xiàng)的分級(jí)列表 2 2 菜單編輯器菜單編輯器 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 7 7 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) *Caption *Name IndexShortcut 屬性區(qū)屬性區(qū)菜單列表區(qū)菜單列表區(qū) 編輯區(qū)編輯區(qū) 我們利用菜單編輯器設(shè)計(jì)每個(gè)菜單項(xiàng),其實(shí)每個(gè)菜單項(xiàng)都我們利用菜單編輯器設(shè)計(jì)每個(gè)菜單項(xiàng),其實(shí)每個(gè)菜單項(xiàng)都 是一個(gè)對(duì)象,它們都有自己的屬性

6、、事件、方法。是一個(gè)對(duì)象,它們都有自己的屬性、事件、方法。 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 8 8 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 名稱:名稱:Name屬性設(shè)置菜單控件的名字以便在代碼中訪問它屬性設(shè)置菜單控件的名字以便在代碼中訪問它 設(shè)計(jì)菜單時(shí)設(shè)計(jì)菜單時(shí)必須輸入必須輸入此項(xiàng)!此項(xiàng)! 標(biāo)題:標(biāo)題:Caption屬性設(shè)置菜單項(xiàng)中顯示的文字若該屬性為連字屬性設(shè)置菜單項(xiàng)中顯示的文字若該屬性為連字 符符(-),則顯示為隔離條可定義訪問鍵則顯示為隔離條可定義訪問鍵(在一字母前加在一字母前加 AA1(3)用于生成分用于生成分 隔條隔條 .黑體黑體 AA12Ctrl+B .- AA13 .

7、隸書隸書 AA14Ctrl+C .楷體楷體_GB2312 AA15Ctrl+D 字號(hào)字號(hào)(&S) BB 訪問鍵訪問鍵Alt+S .14 BB1 1定義成控件定義成控件 數(shù)組數(shù)組BB1 .16 BB1 2 .18 BB1 3 .20 BB1 4 菜菜 單單 列列 表表 區(qū)區(qū) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 15 15 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 續(xù)上表:續(xù)上表: 標(biāo)標(biāo) 題題名稱名稱索引索引快捷鍵快捷鍵說說 明明 顏色顏色(&C)CC訪問鍵訪問鍵Alt+C .紅色紅色 CC1 .綠色綠色 CC2 .藍(lán)色藍(lán)色 CC3 效果效果(&E)DD訪問鍵訪問鍵Alt+E .刪除線刪除線

8、 DD1 .下劃線下劃線 DD2 .粗體粗體 DD3 .斜體斜體 DD4 菜菜 單單 列列 表表 區(qū)區(qū) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 16 16 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 菜菜 單單 列列 表表 區(qū)區(qū) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 17 17 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 菜菜 單單 列列 表表 區(qū)區(qū) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 18 18 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 菜單項(xiàng)事件代碼設(shè)計(jì)如下:菜單項(xiàng)事件代碼設(shè)計(jì)如下: u“字體字體”菜單下的菜單項(xiàng)設(shè)計(jì)成一個(gè)控件數(shù)組菜單下的菜單項(xiàng)設(shè)計(jì)成一個(gè)控件數(shù)組AA1,共享以下,共

9、享以下 事件過程事件過程: Private Sub AA1_Click(Index As Integer) Text1.Font = AA1(Index).Caption End Sub u“字號(hào)字號(hào)”菜單下的菜單項(xiàng)設(shè)計(jì)成一個(gè)控件數(shù)組菜單下的菜單項(xiàng)設(shè)計(jì)成一個(gè)控件數(shù)組BB1,共享以,共享以 下事件過程下事件過程: Private Sub BB1_Click(Index As Integer) Text1.FontSize = Val(BB1(Index).Caption) End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 19 19 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) u“顏色顏色

10、”菜單下的各菜單項(xiàng)為獨(dú)立的菜單控件,因此應(yīng)分菜單下的各菜單項(xiàng)為獨(dú)立的菜單控件,因此應(yīng)分 別在其單擊事件過程中編寫代碼,各事件過程如下別在其單擊事件過程中編寫代碼,各事件過程如下: : Private Sub CC1_Click() Text1.ForeColor = vbRed End Sub Private Sub CC2_Click() Text1.ForeColor = vbGreen End Sub Private Sub CC3_Click() Text1.ForeColor = vbBlue End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2020 職 VB程

11、序設(shè)計(jì)菜單程序設(shè)計(jì) u“效果效果”菜單下的各菜單項(xiàng)具有復(fù)選功能,每次單擊時(shí)切換菜單下的各菜單項(xiàng)具有復(fù)選功能,每次單擊時(shí)切換 成另一種狀態(tài)。因此要判斷當(dāng)前菜單項(xiàng)的成另一種狀態(tài)。因此要判斷當(dāng)前菜單項(xiàng)的CheckedChecked屬性,各屬性,各 事件過程如下事件過程如下: : Private Sub DD1_Click() 刪除線刪除線 If DD1.Checked = True Then Text1.FontStrikethru = False DD1.Checked = False Else Text1.FontStrikethru = True DD1.Checked = True End

12、If End Sub Private Sub DD2_Click() 下劃線下劃線 If DD2.Checked = True Then Text1.FontUnderline = False DD2.Checked = False Else Text1.FontUnderline = True DD2.Checked = True End If End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 21 21 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) Private Sub DD3_Click() 粗體粗體 If DD3.Checked = True Then Text1.FontBol

13、d = False DD3.Checked = False Else Text1.FontBold = True DD3.Checked = True End If End Sub Private Sub DD4_Click() 斜體斜體 If DD4.Checked = True Then Text1.FontItalic = False DD4.Checked = False Else Text1.FontItalic = True DD4.Checked = True End If End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2222 職 VB程序設(shè)計(jì)菜單程序設(shè)

14、計(jì) 2 2:方法:方法PopupMenuPopupMenu的格式的格式: . ,flags,x,y,boldcommand flags 指定菜單的位置和行為,祥見指定菜單的位置和行為,祥見P171P171表表10-210-2、10-310-3 x 菜單的菜單的x x坐標(biāo),缺省則為鼠標(biāo)坐標(biāo)坐標(biāo),缺省則為鼠標(biāo)坐標(biāo) y 菜單的菜單的y y坐標(biāo),缺省則為鼠標(biāo)坐標(biāo)坐標(biāo),缺省則為鼠標(biāo)坐標(biāo) boldcommand 指定要顯示為黑體的菜單項(xiàng)控件名稱指定要顯示為黑體的菜單項(xiàng)控件名稱 二、彈出式菜單二、彈出式菜單 獨(dú)立于菜單欄直接顯示在窗體上獨(dú)立于菜單欄直接顯示在窗體上, ,也稱作上下文菜單、快也稱作上下文菜單、

15、快 捷菜單、右鍵菜單捷菜單、右鍵菜單 1 1:彈出式菜單的設(shè)計(jì):彈出式菜單的設(shè)計(jì) 在菜單編輯器中按下拉式菜單的設(shè)計(jì)方法,并將其頂級(jí)菜在菜單編輯器中按下拉式菜單的設(shè)計(jì)方法,并將其頂級(jí)菜 單設(shè)置為不可見單設(shè)置為不可見 在對(duì)象的在對(duì)象的MouseDownMouseDown事件過程中編寫代碼,用以下的事件過程中編寫代碼,用以下的 PopupMenuPopupMenu方法顯示彈出式菜單方法顯示彈出式菜單 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2323 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) MouseDownMouseDown事件事件: : Sub Form_MouseDown( Sub Form

16、_MouseDown(Button Button As Integer, As Integer, Shift Shift As As Integer,X As Single, Y As Single) Integer,X As Single, Y As Single) (發(fā)生在窗體上的事件過程)(發(fā)生在窗體上的事件過程) (1) (1) Button參數(shù) b2b1b0 B0=1:按下按下左左鍵;鍵; Button為為1(001B) B1=1:按下按下右右鍵;鍵; Button為為2(010B) B2=1:按下按下中中鍵。鍵。 Button為為4(100B) (2) ShiftShift參數(shù)參數(shù)

17、 B2=1B2=1按下按下AltAlt鍵;鍵; B1=1B1=1按下按下CtrlCtrl鍵;鍵;B0=1B0=1按下按下ShiftShift鍵鍵 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2424 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 返回一個(gè)整數(shù),在返回一個(gè)整數(shù),在 ButtonButton 參數(shù)指定的按鈕被按下或者被參數(shù)指定的按鈕被按下或者被 釋放的情況下,該整數(shù)相應(yīng)于釋放的情況下,該整數(shù)相應(yīng)于 SHIFT,CTRL,SHIFT,CTRL,和和 ALTALT 鍵的狀鍵的狀 態(tài)。某鍵被按下使得一個(gè)二進(jìn)制位被設(shè)置。態(tài)。某鍵被按下使得一個(gè)二進(jìn)制位被設(shè)置。shift shift 參數(shù)是參數(shù)是

18、具有相應(yīng)于具有相應(yīng)于 SHIFTSHIFT 鍵(鍵(位位 0 0),),CTRLCTRL 鍵(鍵(位位 1 1),以及),以及 ALTALT 鍵(鍵(位位 2 2)最少二進(jìn)制位的一個(gè)位字段。這些位的值)最少二進(jìn)制位的一個(gè)位字段。這些位的值 分別等于分別等于 1 1,2 2,和和 4 4。 B2=1B2=1按下按下AltAlt鍵;鍵; B1=1B1=1按下按下CtrlCtrl鍵;鍵;B0=1B0=1按下按下ShiftShift鍵鍵 (2) ShiftShift參數(shù)參數(shù) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2525 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 【例【例3 3 】在在例例2的基礎(chǔ)

19、上設(shè)計(jì)窗體和文本框的彈出式菜單,如的基礎(chǔ)上設(shè)計(jì)窗體和文本框的彈出式菜單,如 下圖所示:下圖所示: 標(biāo)題標(biāo)題 名稱名稱 可見可見 文本框快捷菜單文本框快捷菜單 EE .增加增加1磅磅 EE1 .減少減少1磅磅 EE2 .鎖定鎖定 EE3 窗體快捷菜單窗體快捷菜單 FF .紅色背景紅色背景 FF1 .綠色背景綠色背景 FF2 .默認(rèn)背景默認(rèn)背景 FF3 菜單編輯器設(shè)置如下:菜單編輯器設(shè)置如下: 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2626 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2727 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算

20、機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2828 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 文本框文本框的的MouseDown事件代碼設(shè)計(jì)如下:事件代碼設(shè)計(jì)如下: Private Sub Text1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu EE, 0 Or 0 End If End Sub 窗體窗體的的MouseDown事件代碼設(shè)計(jì)如下:事件代碼設(shè)計(jì)如下: Private Sub Form_MouseDown (Button As Integer

21、, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu FF,8 Or 0, , ,FF3 End If End Sub 彈出菜單右上角位彈出菜單右上角位 于坐標(biāo)于坐標(biāo)(x,y)處處 1 : 按下鼠標(biāo)的左按鈕按下鼠標(biāo)的左按鈕 2 : 按下鼠標(biāo)的右按鈕按下鼠標(biāo)的右按鈕 4 : 按下鼠標(biāo)的中間按鈕按下鼠標(biāo)的中間按鈕 彈出菜單項(xiàng)只彈出菜單項(xiàng)只 響應(yīng)左鍵響應(yīng)左鍵 菜單項(xiàng)菜單項(xiàng)FF3顯顯 示為黑體示為黑體 彈出菜單項(xiàng)只彈出菜單項(xiàng)只 響應(yīng)左鍵響應(yīng)左鍵 彈出菜單右上角位于坐標(biāo)彈出菜單右上角位于坐標(biāo)(x,y)處處 計(jì)

22、算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 2929 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 菜單項(xiàng)事件代碼設(shè)計(jì)如下:菜單項(xiàng)事件代碼設(shè)計(jì)如下: 保存窗體的初始顏色保存窗體的初始顏色: Dim Fcolor As Long Private Sub Form_Load() Fcolor = Form1.BackColor &H8000000F默認(rèn)色默認(rèn)色 End Sub 文本框快捷菜單文本框快捷菜單: Private Sub EE1_Click() Text1.FontSize = Text1.FontSize + 1 增加增加1磅磅 End Sub Private Sub EE2_Click()

23、Text1.FontSize = Text1.FontSize 1 減少減少1磅磅 End Sub Private Sub EE3_Click() 鎖定鎖定 If EE3.Caption = 鎖定鎖定 Then EE3.Caption = 取消鎖定取消鎖定“ : Text1.Locked = True Else EE3.Caption = 鎖定鎖定 : Text1.Locked = False End If End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3030 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 窗體快捷菜單窗體快捷菜單: Private Sub FF1_Click() F

24、orm1.BackColor = vbRed 紅色背景紅色背景 End Sub Private Sub FF2_Click() Form1.BackColor = vbGreen 綠色背景綠色背景 End Sub Private Sub FF3_Click() Form1.BackColor = Fcolor 默認(rèn)背景默認(rèn)背景 End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 31 31 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 常見錯(cuò)誤及難點(diǎn)分析常見錯(cuò)誤及難點(diǎn)分析 窗體菜單名、頂層菜單與菜單項(xiàng)的區(qū)別窗體菜單名、頂層菜單與菜單項(xiàng)的區(qū)別 通常出現(xiàn)在菜單欄上的菜單對(duì)象稱為菜單名,菜單名以下

25、拉通常出現(xiàn)在菜單欄上的菜單對(duì)象稱為菜單名,菜單名以下拉 列表形式包含的內(nèi)容為菜單項(xiàng)。菜單項(xiàng)可以包括菜單命令、列表形式包含的內(nèi)容為菜單項(xiàng)。菜單項(xiàng)可以包括菜單命令、 分隔條和子菜單標(biāo)題。當(dāng)菜單名沒有菜單項(xiàng)時(shí),為分隔條和子菜單標(biāo)題。當(dāng)菜單名沒有菜單項(xiàng)時(shí),為“頂層菜頂層菜 單單”,可直接對(duì)應(yīng)一個(gè)應(yīng)用程序。,可直接對(duì)應(yīng)一個(gè)應(yīng)用程序。 菜單名、頂層菜單不能定義快捷菜單,菜單名、頂層菜單不能定義快捷菜單, 而菜單項(xiàng)而菜單項(xiàng) 可以有快捷鍵??梢杂锌旖萱I。 當(dāng)菜單包含有熱鍵字母(菜單標(biāo)題中當(dāng)菜單包含有熱鍵字母(菜單標(biāo)題中“&”后的字母)時(shí)窗后的字母)時(shí)窗 體,按體,按Alt+熱鍵字母可選擇窗體頂部菜單欄中的菜單

26、項(xiàng),當(dāng)熱鍵字母可選擇窗體頂部菜單欄中的菜單項(xiàng),當(dāng) 子菜單打開時(shí),按熱鍵字母選擇子菜單中的。如果子菜單沒子菜單打開時(shí),按熱鍵字母選擇子菜單中的。如果子菜單沒 有打開時(shí),按熱鍵字母無法選擇其中的菜單項(xiàng)。有打開時(shí),按熱鍵字母無法選擇其中的菜單項(xiàng)。 盡管所有的菜單項(xiàng)都能響應(yīng)盡管所有的菜單項(xiàng)都能響應(yīng)Click事件,但是菜單欄中的菜事件,但是菜單欄中的菜 單名通常不需要編寫事件過程。單名通常不需要編寫事件過程。 區(qū)別區(qū)別 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3232 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 常見錯(cuò)誤及難點(diǎn)分析常見錯(cuò)誤及難點(diǎn)分析 使用使用Load語旬加載窗體,窗體不顯示語旬加載窗體,

27、窗體不顯示 Load語句將窗體裝入內(nèi)存并設(shè)置窗體的語句將窗體裝入內(nèi)存并設(shè)置窗體的Visible屬性為屬性為False (無論在設(shè)計(jì)時(shí)如何設(shè)置(無論在設(shè)計(jì)時(shí)如何設(shè)置Visible屬性),此時(shí)可以引用窗體中屬性),此時(shí)可以引用窗體中 的控件及各種屬性。為了使窗體可見,在用的控件及各種屬性。為了使窗體可見,在用Load語句后,再將語句后,再將 窗體的窗體的Visible屬性設(shè)置為屬性設(shè)置為True,或使用,或使用Show方法加載窗體。方法加載窗體。 在因體加載過程中使用在因體加載過程中使用 SetFocus方法出現(xiàn)方法出現(xiàn)“無效的過程調(diào)無效的過程調(diào) 用或參數(shù)用或參數(shù)”錯(cuò)誤錯(cuò)誤 焦點(diǎn)只能移到可視的窗體

28、或控件上。在窗體的焦點(diǎn)只能移到可視的窗體或控件上。在窗體的Load事件完事件完 成前窗體或窗體上的控件是不可視的,所以不能在成前窗體或窗體上的控件是不可視的,所以不能在 Form_ Load事件中把焦點(diǎn)移到正在加載的窗體上,也不能在事件中把焦點(diǎn)移到正在加載的窗體上,也不能在Load事事 件內(nèi)使用件內(nèi)使用SetFocus方法將焦點(diǎn)移至窗體上的控件。此外,也方法將焦點(diǎn)移至窗體上的控件。此外,也 不能把焦點(diǎn)移到不能把焦點(diǎn)移到Enabled或或Vsible屬性被設(shè)置為屬性被設(shè)置為False的窗體或的窗體或 控件。如果已在設(shè)計(jì)時(shí)將控件。如果已在設(shè)計(jì)時(shí)將Enabled或或Visible屬性設(shè)置為屬性設(shè)置為

29、False ,必須在使用,必須在使用SetFocus方法前將方法前將Enabled或或Visible屬性設(shè)置屬性設(shè)置 為為True。 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3333 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 在首次用在首次用Load語句將窗體(假定該窗體在內(nèi)存中還沒有創(chuàng)建)調(diào)人內(nèi)語句將窗體(假定該窗體在內(nèi)存中還沒有創(chuàng)建)調(diào)人內(nèi) 存之時(shí)依次發(fā)生存之時(shí)依次發(fā)生Initialize和和Load事件。事件。Initialize是在窗體創(chuàng)建時(shí)發(fā)生的事是在窗體創(chuàng)建時(shí)發(fā)生的事 件。在窗體的整個(gè)生命周期中,件。在窗體的整個(gè)生命周期中, Initialize 事件只觸發(fā)一次。用戶可以將一事件

30、只觸發(fā)一次。用戶可以將一 個(gè)窗體裝入內(nèi)存或從內(nèi)存中刪除很多次,但窗體的建立只有一次。也就是說個(gè)窗體裝入內(nèi)存或從內(nèi)存中刪除很多次,但窗體的建立只有一次。也就是說 ,在用,在用Load語句將窗體裝入內(nèi)存時(shí)會(huì)觸發(fā)語句將窗體裝入內(nèi)存時(shí)會(huì)觸發(fā)Load事件,但并不一定觸發(fā)事件,但并不一定觸發(fā) Initialize事件事件 窗體的窗體的Activate事件僅當(dāng)窗體成為活動(dòng)窗口時(shí)才發(fā)生。事件僅當(dāng)窗體成為活動(dòng)窗口時(shí)才發(fā)生。 在窗體從內(nèi)存中卸載時(shí)依次發(fā)生在窗體從內(nèi)存中卸載時(shí)依次發(fā)生 QueryUnload和和 Unload事件。事件。 QueryUnload事件可提供造成窗體卸載的原因(單擊事件可提供造成窗體卸載

31、的原因(單擊“關(guān)閉關(guān)閉”按鈕按鈕/程序中程序中 執(zhí)行執(zhí)行Unload語句語句/在應(yīng)用程序中關(guān)閉在應(yīng)用程序中關(guān)閉/在在Windows中的關(guān)閉)。如果在中的關(guān)閉)。如果在 QueryUnLoad事件中把事件中把QueryUnload的參數(shù)的參數(shù)Cancel設(shè)置為設(shè)置為True,就會(huì)忽,就會(huì)忽 略略Unload語句,從而不卸載窗體。所以語句,從而不卸載窗體。所以QueryUnload提供了取消關(guān)閉窗體提供了取消關(guān)閉窗體 的機(jī)會(huì),同時(shí)也允許在需要時(shí)從代碼中關(guān)閉窗體。的機(jī)會(huì),同時(shí)也允許在需要時(shí)從代碼中關(guān)閉窗體。 使用使用End語句來結(jié)束程序,窗體不會(huì)接收到語句來結(jié)束程序,窗體不會(huì)接收到 QueryUnl

32、oad事件事件 常見錯(cuò)誤及難點(diǎn)分析常見錯(cuò)誤及難點(diǎn)分析 與窗體有關(guān)的事件與窗體有關(guān)的事件 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3434 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 是一種特殊類型的窗體對(duì)象是一種特殊類型的窗體對(duì)象 主要用于用戶和應(yīng)用程序的交互主要用于用戶和應(yīng)用程序的交互 建立對(duì)話框的方法三種建立對(duì)話框的方法三種 使用預(yù)定義對(duì)話框,如函數(shù)使用預(yù)定義對(duì)話框,如函數(shù) InputBoxInputBox、MsgBoxMsgBox 使用使用CommonDialogCommonDialog控件創(chuàng)建控件創(chuàng)建 3 3 對(duì)話框?qū)υ捒?計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3535

33、 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) u添加窗體:使用添加窗體:使用“工程工程/添加窗體添加窗體”命令命令 u將窗體定義成對(duì)話框風(fēng)格,不能移動(dòng)、最大或最小化將窗體定義成對(duì)話框風(fēng)格,不能移動(dòng)、最大或最小化 u在對(duì)話框上添加按鈕,如在對(duì)話框上添加按鈕,如“確定確定”與與“取消取消”按鈕按鈕 u在對(duì)話框上添加其它控件在對(duì)話框上添加其它控件 u在適當(dāng)?shù)奈恢迷谶m當(dāng)?shù)奈恢?顯示模式對(duì)話框(打開時(shí)焦點(diǎn)不可切換)顯示模式對(duì)話框(打開時(shí)焦點(diǎn)不可切換): 窗體名窗體名.Show vbModal (或窗體名或窗體名.Show 1) 顯示無模式對(duì)話框顯示無模式對(duì)話框: 窗體名窗體名.Show vbModeless (或窗體

34、名或窗體名.Show 0) 例如例如 Unload Form2 或或 Form2.Hide 3.1 3.1 自定義對(duì)話框自定義對(duì)話框 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3636 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 【例例4 4】設(shè)計(jì)對(duì)話框設(shè)計(jì)對(duì)話框Form2Form2如下圖所示。當(dāng)輸入某文件所在的路如下圖所示。當(dāng)輸入某文件所在的路 徑及名稱后,單擊徑及名稱后,單擊“確定確定”按鈕按所選擇的運(yùn)行方式運(yùn)行該文按鈕按所選擇的運(yùn)行方式運(yùn)行該文 件,單擊件,單擊“取消取消”按鈕取消本次操作,返回窗體按鈕取消本次操作,返回窗體Form1Form1中。中。 如果輸入文件名錯(cuò)誤,將給出警告并返回

35、該對(duì)話框如果輸入文件名錯(cuò)誤,將給出警告并返回該對(duì)話框 Text1 Option1 Option2 Option3 Command1 Command2 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3737 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 在窗體在窗體Form1 的的“運(yùn)行運(yùn)行”菜單項(xiàng)(設(shè)菜單控件名為菜單項(xiàng)(設(shè)菜單控件名為SRun)的)的 Click事件過程中顯示對(duì)話框,代碼如下:事件過程中顯示對(duì)話框,代碼如下: Private Sub SRun_Click() Form2.Show 1 顯示模式對(duì)話框顯示模式對(duì)話框 End Sub 在主窗體在主窗體Form1的的 菜單有一菜單有一“運(yùn)行運(yùn)

36、行”菜單菜單 項(xiàng),運(yùn)行時(shí)單擊項(xiàng),運(yùn)行時(shí)單擊“運(yùn)行運(yùn)行 ”打開模式對(duì)話框打開模式對(duì)話框 Form2 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3838 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 對(duì)話框?qū)υ捒騀orm2代碼設(shè)計(jì)如下:代碼設(shè)計(jì)如下: Private Sub Command1_Click() On Error GoTo ErrorHandler 設(shè)置錯(cuò)誤陷阱。如果出設(shè)置錯(cuò)誤陷阱。如果出 現(xiàn)錯(cuò)誤,轉(zhuǎn)到現(xiàn)錯(cuò)誤,轉(zhuǎn)到ErrorHandler處執(zhí)行處執(zhí)行 FName = Trim(Text1.Text) If Option1.Value = True Then a = Shell(FName,

37、 1) 正常方式并擁有焦點(diǎn)正常方式并擁有焦點(diǎn) If Option2.Value = True Then a = Shell(FName, 3) 最大化方式并擁有焦點(diǎn)最大化方式并擁有焦點(diǎn) If Option3.Value = True Then a = Shell(FName, 2) 最小化方式并擁有焦點(diǎn)最小化方式并擁有焦點(diǎn) Exit Sub ErrorHandler: MsgBox 不能運(yùn)行該程序不能運(yùn)行該程序, , 注意注意 Resume Next 從產(chǎn)生錯(cuò)誤的語句之后開始運(yùn)行從產(chǎn)生錯(cuò)誤的語句之后開始運(yùn)行 End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 3939 職 V

38、B程序設(shè)計(jì)菜單程序設(shè)計(jì) Private Sub Command2_Click() Unload Me End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4040 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) u通用對(duì)話框 u通用對(duì)話框可置于窗體的任意位置,運(yùn)行時(shí)不顯示 u設(shè)置通用對(duì)話框控件的“屬性頁” 使用通用對(duì)話框控件使用通用對(duì)話框控件() 創(chuàng)建創(chuàng)建! 使用使用“工程工程/部件部件/控件控件”命令添加對(duì)話框控命令添加對(duì)話框控 件件! DialogTitle InitDir Filter Flags DefaultExt Max FilterIndex CancelError 計(jì)算機(jī)應(yīng)用基

39、礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 41 41 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) u在代碼中使用以下方法打開對(duì)話框 u ShowOpen:顯示“打開文件”對(duì)話框 u ShowSave:顯示“文件存儲(chǔ)”對(duì)話框 u ShowColor:顯示“顏色”對(duì)話框 u ShowFont:顯示“字體”對(duì)話框 u ShowPrinter:顯示“打印”對(duì)話框 u ShowHelp:顯示“幫助”對(duì)話框 示例:commondialog1.showopen 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4242 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 【例例5 5】使用打開文件對(duì)話框,在運(yùn)行時(shí)打開一幅圖像使用打開文件對(duì)

40、話框,在運(yùn)行時(shí)打開一幅圖像 Image1 CommonDialog1 Command1 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4343 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) “打開/另存為”對(duì)話框的屬性頁設(shè)置如下: All files|*.*|Bmp Files|*.bmp|Icon Files|*.ico 指文件名指文件名 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4444 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) “裝入圖像裝入圖像”按鈕代碼設(shè)計(jì)如下:按鈕代碼設(shè)計(jì)如下: Private Sub Command1_Click()Private Sub Command1_Click()

41、 On Error GoTo ErrHandler On Error GoTo ErrHandler 出錯(cuò)時(shí)轉(zhuǎn)到出錯(cuò)時(shí)轉(zhuǎn)到ErrorHandler處執(zhí)行處執(zhí)行 CommonDialog1.ShowOpen CommonDialog1.ShowOpen 將通用對(duì)話框顯示為打開將通用對(duì)話框顯示為打開 文件對(duì)話框文件對(duì)話框 Image1.Picture=LoadPicture(CommonDialog1.)Image1.Picture=LoadPicture(CommonDialog1.) Exit Sub Exit Sub ErrHandler:ErrHandler: Exit Sub Exit

42、Sub End SubEnd Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4545 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 【例例6 6】設(shè)計(jì)如圖所示的界面,運(yùn)行時(shí)單擊設(shè)計(jì)如圖所示的界面,運(yùn)行時(shí)單擊“背景色背景色”按鈕打開按鈕打開 顏色對(duì)話框,在對(duì)話框中選擇的顏色用于設(shè)置文本框的背景顏顏色對(duì)話框,在對(duì)話框中選擇的顏色用于設(shè)置文本框的背景顏 色,單擊色,單擊“字體字體”按鈕打開字體對(duì)話框,在對(duì)話框中選擇字體按鈕打開字體對(duì)話框,在對(duì)話框中選擇字體 、效果及顏色,用于設(shè)置文本框文字的字體、效果及顏色、效果及顏色,用于設(shè)置文本框文字的字體、效果及顏色 CommonDialog1 Text1 設(shè)

43、置設(shè)置Flag : 257、258、259 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4646 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) “顏色顏色”對(duì)話框的屬性頁設(shè)置如下對(duì)話框的屬性頁設(shè)置如下: 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4747 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) “顏色顏色”、“字體字體”對(duì)話框的屬性頁設(shè)置如下對(duì)話框的屬性頁設(shè)置如下: 顏色顏色: Color 標(biāo)志標(biāo)志: Flags FontSizeFontSize MinMin MaxMax FontNameFontName 通常:通常:257、258、259 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專

44、4848 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) “背景色背景色”按鈕按鈕Command1的的Click事件過程如下:事件過程如下: Private Sub Command1_Click() CommonDialog1.ShowColor將通用對(duì)話框顯示為顏色對(duì)話框?qū)⑼ㄓ脤?duì)話框顯示為顏色對(duì)話框 Text1.BackColor = CommonDialog1.Color End Sub “字體字體”按鈕按鈕Command2的的Click事件過程如下:事件過程如下: Private Sub Command2_Click() CommonDialog1.ShowFont將通用對(duì)話框顯示為字體對(duì)話框?qū)⑼ㄓ脤?duì)話框

45、顯示為字體對(duì)話框 Text1.Font = CommonDialog1.FontName Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = CommonDialog1.Color Text1.FontSize = CommonDialog1.

46、FontSize End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 4949 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 在程序中對(duì)通用對(duì)話框的屬性設(shè)置不起作用在程序中對(duì)通用對(duì)話框的屬性設(shè)置不起作用 在程序中對(duì)通用對(duì)話框的屬件設(shè)置必須注意語句的先后順序在程序中對(duì)通用對(duì)話框的屬件設(shè)置必須注意語句的先后順序 ,屬性設(shè)置語句必須放在打開對(duì)話框語句前,否則在程序中對(duì),屬性設(shè)置語句必須放在打開對(duì)話框語句前,否則在程序中對(duì) 通用對(duì)話框的屬性設(shè)置在本次使用中不起作用。通用對(duì)話框的屬性設(shè)置在本次使用中不起作用。 例:例:下面的程序代碼由于先打開對(duì)話框,再進(jìn)行屬性設(shè)置,在下面的程序代碼由于先打開對(duì)話框,再

47、進(jìn)行屬性設(shè)置,在 第一次執(zhí)行本段代碼時(shí),無法過濾文件,第一次執(zhí)行本段代碼時(shí),無法過濾文件,ShowopenShowopen語句后面的語句后面的 屬性設(shè)置語句對(duì)下一次執(zhí)行屬性設(shè)置語句對(duì)下一次執(zhí)行ShowopenShowopen有效。有效。 CommonDialoglShowOpen CommonDialogl *Bmp CommonDialoglInitDirC:Windows CommonDialoglFilter Pictures(*Bmp) * Bmp All Files(*.*) *.* CommonDialogl FilterIndex1 常見錯(cuò)誤及難點(diǎn)分析常見錯(cuò)誤及難點(diǎn)分析 計(jì)算機(jī)應(yīng)

48、用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5050 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 常見錯(cuò)誤及難點(diǎn)分析常見錯(cuò)誤及難點(diǎn)分析 設(shè)置通用對(duì)話框的設(shè)置通用對(duì)話框的CancelErrorCancelError屬性為屬性為TrueTrue發(fā)生錯(cuò)誤發(fā)生錯(cuò)誤 當(dāng)通用對(duì)話框的當(dāng)通用對(duì)話框的CancelErrorCancelError屬性設(shè)置為屬性設(shè)置為TrueTrue時(shí),無論何時(shí)時(shí),無論何時(shí) 選擇選擇“取消取消”按鈕,均產(chǎn)生按鈕,均產(chǎn)生3275532755(cdlCancelcdlCancel)號(hào)錯(cuò)誤。)號(hào)錯(cuò)誤。 Visual BasicVisual Basic通過系統(tǒng)對(duì)象通過系統(tǒng)對(duì)象 ErrErr來記錄程序

49、運(yùn)行期間所發(fā)來記錄程序運(yùn)行期間所發(fā) 生的錯(cuò)誤。生的錯(cuò)誤。ErrErr對(duì)象的對(duì)象的 NumberNumber屬性記錄錯(cuò)誤號(hào),屬性記錄錯(cuò)誤號(hào),DescriptionDescription 屬性保存有關(guān)錯(cuò)誤的說明。屬性保存有關(guān)錯(cuò)誤的說明。 例如,當(dāng)在例如,當(dāng)在CancelError CancelError 屬性為屬性為TrueTrue的通用對(duì)話框中選擇的通用對(duì)話框中選擇 “取消取消”按鈕時(shí),產(chǎn)生一個(gè)錯(cuò)誤,按鈕時(shí),產(chǎn)生一個(gè)錯(cuò)誤,ErrErrNumberNumber被設(shè)置為被設(shè)置為3275532755 ,DescriptionDescription屬性被設(shè)置為屬性被設(shè)置為“選擇選擇取消取消 ” ”。 如

50、果不對(duì)錯(cuò)誤進(jìn)行處理,如果不對(duì)錯(cuò)誤進(jìn)行處理,Visual BasicVisual Basic將顯示出錯(cuò)誤消將顯示出錯(cuò)誤消 息并停止程序運(yùn)行。為防止由于錯(cuò)誤造成停止程序運(yùn)行的問題息并停止程序運(yùn)行。為防止由于錯(cuò)誤造成停止程序運(yùn)行的問題 ,可以使用,可以使用 On ErrorOn Error語句捕獲錯(cuò)誤,然后根據(jù)捕獲的錯(cuò)誤進(jìn)語句捕獲錯(cuò)誤,然后根據(jù)捕獲的錯(cuò)誤進(jìn) 行處理。行處理。 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 51 51 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) On Ermr Resume Next On Ermr Resume Next 忽略發(fā)生錯(cuò)誤的命令行,執(zhí)行下一句命令忽略發(fā)生錯(cuò)誤的命

51、令行,執(zhí)行下一句命令 On Ermr GoToOn Ermr GoTo語句標(biāo)號(hào)語句標(biāo)號(hào) 當(dāng)發(fā)生錯(cuò)誤時(shí)轉(zhuǎn)向執(zhí)行標(biāo)號(hào)所指定的命令當(dāng)發(fā)生錯(cuò)誤時(shí)轉(zhuǎn)向執(zhí)行標(biāo)號(hào)所指定的命令 行行 對(duì)于捕獲到的錯(cuò)誤號(hào),可用分支語句處理。對(duì)于捕獲到的錯(cuò)誤號(hào),可用分支語句處理。 以下程序說明當(dāng)在顏色對(duì)話框內(nèi)選取以下程序說明當(dāng)在顏色對(duì)話框內(nèi)選取“取消取消”按鈕時(shí),按鈕時(shí), CommonDialogl.ShowColorCommonDialogl.ShowColor語句產(chǎn)生語句產(chǎn)生3275532755號(hào)錯(cuò)誤。號(hào)錯(cuò)誤。On ErrorOn Error語語 句在捕獲到錯(cuò)誤后,轉(zhuǎn)向執(zhí)行標(biāo)號(hào)句在捕獲到錯(cuò)誤后,轉(zhuǎn)向執(zhí)行標(biāo)號(hào) ErrorHan

52、dlerErrorHandler所指定的命所指定的命 令行,在標(biāo)簽令行,在標(biāo)簽Label1Label1上顯示上顯示“放棄操作放棄操作”,并忽略產(chǎn)生錯(cuò)誤的,并忽略產(chǎn)生錯(cuò)誤的 那一行命令與標(biāo)號(hào)之間的所有語句。那一行命令與標(biāo)號(hào)之間的所有語句。 Private Sub Commandl ClickPrivate Sub Commandl Click()() On Error GoTo ErrorHaandler On Error GoTo ErrorHaandler 錯(cuò)誤捕獲語句錯(cuò)誤捕獲語句 CommonDialogl.CancelErrorCommonDialogl.CancelError=True

53、 True 使選取使選取“取消取消”按鈕按鈕 時(shí)時(shí) 能對(duì)出錯(cuò)誤做響應(yīng)能對(duì)出錯(cuò)誤做響應(yīng) CommonDialogl.ShowColorCommonDialogl.ShowColor Textl.ForeColor Textl.ForeColor=CommonDialoglCommonDialoglColor Color 設(shè)置顏色設(shè)置顏色 Exit Sub Exit Sub 無錯(cuò)誤時(shí)正常退出本過程無錯(cuò)誤時(shí)正常退出本過程 常用的常用的 On ErmrOn Ermr語句形式有:語句形式有: 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5252 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 在使用在使用Com

54、monlnalogCommonlnalog控件控制字體選擇時(shí)出現(xiàn)錯(cuò)誤控件控制字體選擇時(shí)出現(xiàn)錯(cuò)誤 這是由于沒有設(shè)置這是由于沒有設(shè)置CommonDialogCommonDialog控件的控件的FlagsFlags屬性,或?qū)賹傩?,或?qū)?性值不正確。通常設(shè)置該值為性值不正確。通常設(shè)置該值為H103H103,表示屏幕字體、打印機(jī),表示屏幕字體、打印機(jī) 字體兩者皆有之,并在字體對(duì)話框中出現(xiàn)刪除線、下劃線、字體兩者皆有之,并在字體對(duì)話框中出現(xiàn)刪除線、下劃線、 顏色等元素。顏色等元素。 以下為錯(cuò)誤處理的語句以下為錯(cuò)誤處理的語句 ErrorHandlerErrorHandler:語句標(biāo)號(hào),錯(cuò)誤處理語句開始語句標(biāo)

55、號(hào),錯(cuò)誤處理語句開始 If Err.NumberIf Err.Number=32755 Then Labell.Caption32755 Then Labell.Caption=“放棄操作放棄操作 ” End SubEnd Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5353 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) uVBVB中允許應(yīng)用程序有多個(gè)窗體,每個(gè)窗體有自己的代碼和不中允許應(yīng)用程序有多個(gè)窗體,每個(gè)窗體有自己的代碼和不 同的操作,從而實(shí)現(xiàn)復(fù)雜的功能。同的操作,從而實(shí)現(xiàn)復(fù)雜的功能。 一:多重窗體有關(guān)語句一:多重窗體有關(guān)語句 1:Load 1:Load :將窗體載入內(nèi)存,但并不顯示將

56、窗體載入內(nèi)存,但并不顯示 2:UnLoad 2:UnLoad :將窗體從內(nèi)存中消除將窗體從內(nèi)存中消除 3:3: .Show .Show 模式模式:顯示窗體。顯示窗體。 模式模式=0(=0(非模態(tài)非模態(tài)) )或或1(1(模態(tài)模態(tài)) ),默認(rèn)模式為,默認(rèn)模式為0 0。 4:4: .Hide: .Hide:隱藏窗體隱藏窗體( (并不從內(nèi)存中消除并不從內(nèi)存中消除) ) 4 4 多重窗體多重窗體 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5454 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 二、多重窗體設(shè)計(jì)二、多重窗體設(shè)計(jì) u多重窗體設(shè)計(jì)與單重窗體設(shè)計(jì)一致,大致可分為三步:多重窗體設(shè)計(jì)與單重窗體設(shè)計(jì)一致,

57、大致可分為三步: u建立界面建立界面 u編寫代碼編寫代碼 u運(yùn)行程序運(yùn)行程序 u指定啟動(dòng)窗體:在指定啟動(dòng)窗體:在“工程工程/ /工程屬性工程屬性/ /通用通用”中可以根據(jù)需中可以根據(jù)需 要指定應(yīng)用程序的啟動(dòng)窗體。要指定應(yīng)用程序的啟動(dòng)窗體。 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5555 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 【例例7 7】多重窗體應(yīng)用程序多重窗體應(yīng)用程序 窗體窗體1 1的代碼的代碼 Private Sub Command1_Click() Load Form2 Form1.Hide Form2.Show Form2.Text1.Text = UCase(Form1.Te

58、xt1) End Sub Private Sub Command2_Click() Load Form3 Form1.Hide Form3.Show Form3.Text1.Text = LCase(Form1.Text1) End Sub Private Sub Command3_Click() End End Sub 計(jì)算機(jī)應(yīng)用基礎(chǔ)計(jì)算機(jī)應(yīng)用基礎(chǔ) 總述 總述 杭 上 專 5656 職 VB程序設(shè)計(jì)菜單程序設(shè)計(jì) 窗體窗體2的代碼的代碼: Private Sub Command1_Click() Form1.Show Form2.Hide End Sub Private Sub Form_Activate() Text1.Text=Ucase(Form1.Text1.Text) End Sub 窗體窗體3的代碼:的代碼: Private Sub Co

溫馨提示

  • 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)論