VB程序設(shè)計第7章菜單的設(shè)計課件_第1頁
VB程序設(shè)計第7章菜單的設(shè)計課件_第2頁
VB程序設(shè)計第7章菜單的設(shè)計課件_第3頁
VB程序設(shè)計第7章菜單的設(shè)計課件_第4頁
VB程序設(shè)計第7章菜單的設(shè)計課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章菜單的設(shè)計

第7章菜單的設(shè)計

7.1知識要點

7.2習(xí)題與解答

7.3實訓(xùn)指導(dǎo)

7.4測驗題7.1知識要點1、菜單與菜單編輯器(1)菜單的基本概念菜單:菜單就是可以選擇命令的一個列表。菜單分類:菜單一般分為下拉式菜單和彈出式菜單兩種。下拉式菜單位于多出現(xiàn)在菜單欄中,彈出式菜單顯示在窗體之上,是獨立于菜單欄的浮動式菜單。

(2)菜單編輯器VisualBasic應(yīng)用程序中的菜單可以利用“菜單編輯器”來進行設(shè)計,也可以利用程序向?qū)砩伞!安藛尉庉嬈鳌钡闹饕獌?yōu)點是使用方便、簡捷,可以用編程量很少的完全交互方式來自定義菜單。進入“菜單編輯器”有四種方法:

①在設(shè)計狀態(tài)下,選擇“工具”菜單下的“菜單編輯器”命令,或者在窗體上單擊右鍵,在隨后彈出的快捷菜單中選擇“菜單編輯器”命令。②單擊工具欄中的“菜單編輯器”快捷按鈕。③按Ctrl+E鍵。④在窗體的空白處右鍵單擊,然后單擊彈出菜單中的“菜單編輯器”菜單項?!安藛尉庉嬈鳌狈稚?、中、下三部分,三部分分別為屬性設(shè)置去,中間為七個按鈕區(qū),下面為菜單顯示區(qū)。窗口中主要組成元素的作用解釋見表7-1。表7-1“菜單編輯器”的組成元素及其作用組成元素作用標(biāo)題(Caption)文本框用來輸入顯示在窗體上的用戶建立的菜單標(biāo)題。名稱(Name)文本框用來輸入菜單項的名稱。索引(Index)文本框用來輸入menu控件數(shù)組元素的下標(biāo)。快捷鍵(Shortcut)列表框供用戶在列表中為菜單項選擇一個快捷鍵。復(fù)選(Checked)復(fù)選框“復(fù)選”屬性設(shè)置為True時,可以在相應(yīng)的菜單項左側(cè)加上一個“√”號。有效(Enabled)復(fù)選框“有效”屬性決定菜單項是否有效??梢姡╒isible)復(fù)選框“可見”屬性決定菜單項是否可見。“←”和“→”按鈕調(diào)整菜單項級別?!啊焙汀啊卑粹o調(diào)整菜單中各菜單項的順序。“下一個”按鈕使得下一個菜單項進入編輯狀態(tài)?!安迦搿卑粹o在選定的菜單項之前插入和該菜單項級別相同的菜單項?!皠h除”按鈕刪除選定的菜單項。菜單顯示區(qū)域該區(qū)域用來顯示用戶為某一窗體設(shè)計的所有菜單項的標(biāo)題。②編寫代碼每個菜單項一般只能響應(yīng)一個事件,即鼠標(biāo)單擊(Click)事件。③菜單項動態(tài)增減菜單項能夠隨著應(yīng)用程序的變化而動態(tài)地增減,在具體實現(xiàn)過程中通常要利用到菜單控件數(shù)組。

3、菜單的控制①有效性控制有些菜單命令在某些條件下是不可用的,不可用的菜單,又稱之為無效菜單,呈灰色顯示,不響應(yīng)用戶事件。菜單項的有效性由它的屬性Enabled來控制。②菜單項的復(fù)選標(biāo)記所謂菜單項的復(fù)選標(biāo)記,就是菜單項左側(cè)的“√”記號,它表明該菜單項當(dāng)前處于活動狀態(tài),也就是說該菜單項對應(yīng)的命令只能表示兩種狀態(tài),即活動狀態(tài)與非活動狀態(tài)。

在“菜單編輯器”中,有復(fù)選(Checked)復(fù)選框用來對復(fù)選標(biāo)記進行初始化設(shè)置,它對應(yīng)菜單項的Checked屬性,Checked屬性只有True和False兩個取值,分別表明該菜單項當(dāng)前處于活動狀態(tài)或非活動狀態(tài)。③菜單項的隱藏與顯示應(yīng)用程序菜單中的某些菜單項可以在必要的時候隱藏起來,“可見(Visible)”屬性決定菜單項是否可見,它的默認值為True。其中,“對象”是可選的。如果省略,則具有焦點的窗體將成為默認對象。x和y是兩個可選參數(shù),分別指定顯示彈出式菜單的x坐標(biāo)和y坐標(biāo)。如果省略,則使用鼠標(biāo)的坐標(biāo)。Flags參數(shù)的設(shè)置值和含義如下:(1)Flags的默認值為0,彈出式菜單的左側(cè)定位于x。(2)Flags取值為4,x的位置是彈出式菜單的中心。(3)Flags取值為8,彈出式菜單的右側(cè)定位于x。由于快捷菜單的頂層菜單項是不顯示的,所以快捷菜單的頂層菜單至少要有一個子菜單項。

第7章菜單的設(shè)計

7.1知識要點

7.2習(xí)題與解答

7.3實訓(xùn)指導(dǎo)

7.4測驗題

7.2習(xí)題與解答1、常用的菜單有哪幾種?

答案:菜單一般分為下拉式菜單和彈出式菜單兩種。下拉式菜單位于多出現(xiàn)在菜單欄中,彈出式菜單顯示在窗體之上,是獨立于菜單欄的浮動式菜單。2、菜單的熱鍵和快捷鍵有什么區(qū)別?答案:菜單熱鍵的作用是同時按下Alt和菜單熱鍵即可打開該菜單,而菜單快捷鍵的作用是按下該鍵直接執(zhí)行響應(yīng)菜單項的操作。通常,為頂級菜單項設(shè)置熱鍵,而為非定級菜單項設(shè)置快捷鍵。

5、利窗口中哪些項目是必須填寫的。

答案:在用“菜單編輯器”進行菜單設(shè)計時,只有名稱屬性是必須填寫的,菜單標(biāo)題可以為空,其他項目也都可以不設(shè)置。6、如何設(shè)計菜單控件數(shù)組?菜單數(shù)組中的菜單有哪些要求?

答案:設(shè)計菜單數(shù)組控件時,只要把該數(shù)組中的所有菜單項元素名稱設(shè)為相同,索引值不同即可。菜單控件數(shù)組中的各元素在菜單控件列表中必須是連續(xù)的,而且在同一級別上。

7所謂菜單的控制問題指的是什么?

答案:菜單的控制包括①有效性控制②菜單項的復(fù)選標(biāo)記③菜單項的隱藏與顯示8、設(shè)計快捷菜單時,有哪些要求?使用什么方法顯示快捷菜單?答案:快捷菜單的設(shè)計同樣使用“菜單編輯器”。設(shè)計過程中,通常把快捷菜單的頂層菜單項的可見(Visible)屬性設(shè)置為False。這樣,程序運行時,快捷菜單是不可見的。顯示快捷菜單的方法是PopupMenu。

第7章菜單的設(shè)計

7.1知識要點

7.2習(xí)題與解答

7.3實訓(xùn)指導(dǎo)

7.4測驗題

7.3.2技能訓(xùn)練內(nèi)容【實訓(xùn)7.1】為教材例7.1的“顏色”菜單中增加“其他顏色”菜單項,并通過“通用對話框”為其實現(xiàn)代碼完成對標(biāo)簽文字的顏色設(shè)置。提示:參照教材例7.1。

【實訓(xùn)7.2】編寫一個簡單的文本處理程序,窗體如圖7-1所示,在窗體上設(shè)計菜單:包含“編輯”和“設(shè)置”兩項,其中“編輯”提供Windows中提供的“剪切”、“復(fù)制”和“粘貼”和”退出“功能(只能從左側(cè)文本框向右側(cè)文本框進行復(fù)制和剪切粘貼);“設(shè)置”提供“設(shè)置背景顏色”(指文本框的背景),“設(shè)置文本顏色”和“設(shè)置字體”(包括字體、粗體、和字號)功能,并實現(xiàn)菜單各項的功能。提示:窗體上包含一個通用對話框(Commondialog1)和兩個文本框(Text1和Text2)。菜單設(shè)計,打開“菜單編輯器”窗口,把表7-2列出的各菜單項屬性輸入到“菜單編輯器”中。圖7-1參考代碼:OptionExplicitPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnueditEndIfEndSubPrivateSubmnueditcopy_Click()IfText1.SelLength>0ThenClipboard.SetTextText1.SelTextEndIfEndSubPrivateSubmnueditcut_Click()IfText1.SelLength>0ThenClipboard.SetTextText1.SelTextText1.SelText=""EndIfEndSubPrivateSubmnueditexit_Click()EndEndSubPrivateSubmnueditpaste_Click()IfLen(Clipboard.GetText)>0ThenText2.SelText=Clipboard.GetTextEndIfEndSubPrivateSubmnusetting_Click(IndexAsInteger)IfIndex=0ThenCommonDialog1.ShowColorText1.BackColor=CommonDialog1.ColorText2.BackColor=CommonDialog1.ColorEndIfIfIndex=1ThenCommonDialog1.ShowColorText1.ForeColor=CommonDialog1.ColorText2.ForeColor=CommonDialog1.ColorEndIfIfIndex=2ThenCommonDialog1.Flags=cdlCFBothCommonDialog1.ShowFontText1.Font.Name=CommonDialog1.FontNameText2.Font.Name=CommonDialog1.FontNameText1.Font.Size=CommonDialog1.FontSizeText2.FontSize=CommonDialog1.FontSizeEndIfEndSub表7-3實訓(xùn)7.4中對象的屬性設(shè)置對象屬性設(shè)置值窗體名稱Form1CaptionForm1標(biāo)簽1名稱Label1CaptionBorderStyle1--fixedsingle標(biāo)簽2名稱Label2CaptionBorderStyle1--fixedsingle標(biāo)簽3名稱Label3Caption初始數(shù)據(jù):標(biāo)簽4名稱Label4Caption排序后數(shù)據(jù):建立菜單。打開“菜單編輯器”窗口,把表7-4列出的各菜單項屬性輸入到“菜單編輯器”中。

表7-4菜單項的屬性設(shè)置菜單項標(biāo)題(Caption)名稱(Name)可見(Visible)初始初始mnunumbersTrue….生成數(shù)據(jù)生成數(shù)據(jù)mnucreateTrue….清空清空mnuclearTrue….--mnuline1True….升序升序mnuincTrue….降序降序mnuredTrue….--mnuline2True….退出退出mnuexitTrue

生成菜單如圖7-3。編寫代碼完成以下功能:單擊“生成數(shù)據(jù)”菜單項,在label1標(biāo)簽中隨機生成10個100以內(nèi)的整數(shù);單擊“清空”菜單項,label1和label2標(biāo)簽內(nèi)數(shù)據(jù)均清空;單擊“升序”和“降序”菜單項,則分別把label1標(biāo)簽中的數(shù)據(jù)按升序和降序的順序排列在label2標(biāo)簽中;單擊“退出”菜單項,退出程序。同時,在程序運行時,右鍵單擊label1標(biāo)簽,則顯示mnunumbers菜單為快捷菜單,如圖7-4所示。圖7-3圖7-4參考代碼如下:Dima(10)AsIntegerPrivateSubLabel1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnunumbersEndIfEndSubPrivateSubmnuclear_Click()Label1.Caption=""Label1.Caption=""EndSubPrivateSubmnucreate_Click()DimiAsIntegerFori=1To10Randomizea(i)=Int(Rnd*100)Label1.Caption=Label1.Caption+Str$(a(i))NextEndSubPrivateSubmnudec_Click()DimiAsInteger,jAsInteger,kAsIntegerFori=1To9Forj=i+1To10Ifa(i)<a(j)Thenk=a(i)a(i)=a(j)a(j)=kEndIfNextjLabel2.Caption=Label2.Caption+Str$(a(i))NextiLabel2.Caption=Label2.Caption+Str$(a(10))EndSubPrivateSubmnuexit_Click()EndEndSubPrivateSubmnuinc_Click()DimiAsInteger,jAsInteger,kAsIntegerFori=1To9Forj=i+1To10Ifa(i)>a(j)Thenk=a(i)a(i)=a(j)a(j)=kEndIfNextjLabel2.Caption=Label2.Caption+Str$(a(i))NextiLabel2.Caption=Label2.Caption+Str$(a(10))EndSub

第7章菜單的設(shè)計

7.1知識要點

7.2習(xí)題與解答

7.3實訓(xùn)指導(dǎo)

7.4測驗題

7.4測驗題7.4.1選擇題1.在使用菜單編輯器進行菜單設(shè)計時,必須填寫的項目是

。

A.名稱B.標(biāo)題C.快捷鍵D.熱鍵答案:A2.下列關(guān)于菜單的說法錯誤的是

A.菜單分為下拉式和彈出式兩種。

B.每個菜單項都是一個控件,與其他控件一樣也有自己的屬性和事件。C.菜單項只支持Click事件和DblClick事件。D.只有建立菜單數(shù)組時才為菜單項的索引賦值。答案:C

3.有一名為mnuabc的菜單項,為了在程序運行時菜單無效,正確的語句是

。

A.mnuabc.enabled=TrueB.mnuabc.enabled=FalseC.mnuabc.visible=TrueD.mnubac.visible=False答案:B4.若要設(shè)定D鍵為某菜單項的熱鍵,在設(shè)置該菜單項標(biāo)題時,應(yīng)該

。

A.在字母D的前面加上“$”B.在字母D的前面加上“@”C.在字母D的前面加上“#”D.在字母D的前面加上“&”答案:D

5.若要讓一名為mnuabc的菜單項,為了在程序運行時有復(fù)選標(biāo)記,應(yīng)該使用的語句是

。

A.mnuabc.enabled=TrueB.mnuabc.enabled=FalseC.mnuabc.checked=TrueD.mnubac.checked=False答案:C6.下列事件代碼PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnuitem,2EndSub功能是

。A.只有在窗體上右鍵單擊才彈出菜單mnuitem,左右鍵均可以觸發(fā)彈出菜單。B.只有在窗體上右鍵單擊才彈出菜單mnuitem,僅有右鍵可以觸發(fā)彈出菜單。C.只有在窗體上左鍵單擊才彈出菜單mnuitem,僅有右鍵可以觸發(fā)彈出菜單。D.只有在窗體上左鍵單擊才彈出菜單mnuitem,左右鍵均可以觸發(fā)彈出菜單。答案:A7.下列說法正確的是

。A.若要為某菜單項添加代碼,只有在設(shè)計階段雙擊該菜單項才可進入代碼設(shè)計窗口。B.因為菜單分割條沒有對應(yīng)的代碼,所以無須給他命名。C.菜單項不可見等同于令其Caption屬性為空。D.菜單項能夠?qū)崿F(xiàn)隨著應(yīng)用程序的變化而動態(tài)地增減。答案:D8.設(shè)置菜單控件數(shù)組時,下列說法正確的是

。A.菜單項索引必須從0開始。B.菜單項索引設(shè)定后,不可以更改,只能刪除重做。C.各菜單項的名稱一定要相同。D.菜單項索引必須是連續(xù)的。答案:C

9.下列說法錯誤的是

。A.分隔條菜單也可以有子菜單,但不能有快捷鍵。B.已經(jīng)建立好的下拉式菜單也可以作為快捷菜單來使用。C.在設(shè)計階段單擊某菜單項,可以打開它的子菜單。D.在設(shè)計階段單擊某菜單項,不能執(zhí)行它對應(yīng)的菜單命令,可以為其編寫代碼。答案:A7.4.2填空題1.菜單通常分為(1)和(2)兩種,VisualBasic在(3)中進行菜單設(shè)計。答案:(1)下拉式菜單(2)彈出式菜單(3)菜單編輯器2.菜單分割條的標(biāo)題應(yīng)設(shè)為(4)。答案:-

3.菜單的熱鍵是指同時按下(5)鍵和菜單熱鍵即可打開該菜單,菜單熱鍵字符會以(6)形式加以顯示。答案:(5)Alt(6)下劃線4.一般來說,每個菜單項只能響應(yīng)一個事件,即(7)事件。答案:鼠標(biāo)單擊(Click)

7.4.3編程題1.為實訓(xùn)7.2的簡單文本處理程序添加一個文件菜單,動態(tài)添加打開過的文件路徑和名稱,要求最多顯示最近打開的五個文件名,單擊每個顯示的文件名同樣可以打開該文件。如圖7-5和圖7-6所示。

圖7-5圖7-61.提示:菜單設(shè)計如表7-5所示。

表7-5菜單項屬性設(shè)置菜單項標(biāo)題(Caption)名稱(Name)索引(Index)可以(Visible)文件(F)文件(&F)

mnufileTrue….打開打開

mnuopen

溫馨提示

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

最新文檔

評論

0/150

提交評論