版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章菜單程序設(shè)計(jì) 在Windows環(huán)境下,幾乎所有的應(yīng)用程序都通過(guò)菜單來(lái)實(shí)現(xiàn)各種操作。 對(duì)于VB應(yīng)用程序來(lái)說(shuō),當(dāng)操作比較簡(jiǎn)單時(shí),一般通過(guò)控件來(lái)執(zhí)行,而當(dāng)要完成比較復(fù)雜的操作時(shí),使用菜單具有十分明顯的優(yōu)勢(shì)。第九章菜單程序設(shè)計(jì)9.1VisualBasic中的菜單1、菜單的作用和分類(lèi):?作用:
?提供人機(jī)對(duì)話界面,便于選擇應(yīng)用程序的功能。
?管理應(yīng)用系統(tǒng),控制各種功能模塊的運(yùn)行。?分類(lèi):
?下拉式菜單:典型的窗口式菜單
?彈出式菜單:鼠標(biāo)器右鍵單擊后彈出的快捷菜單9.1VisualBasic中的菜單1、菜單的作用和菜單的優(yōu)點(diǎn):
?下拉式菜單的優(yōu)點(diǎn):
?整體感強(qiáng),一目了然,直觀方便,易于學(xué)習(xí)。 ?具有導(dǎo)航功能,方便在各個(gè)菜單中查詢要使用的功能。
?占用屏幕空間小,只占用窗體上邊一行,需要時(shí)下拉出子菜單。
菜單的優(yōu)點(diǎn):下拉式菜單彈出式菜單下拉式菜單彈出式菜單
菜單控件是一個(gè)對(duì)象;與其它對(duì)象一樣,它具有定義它的外觀與行為的屬性。在設(shè)計(jì)或運(yùn)行時(shí)可以設(shè)置Caption屬性、Enabled和Visible屬性、Checked屬性以及其它屬性。菜單控件只包含一個(gè)事件,即Click事件,當(dāng)用鼠標(biāo)或鍵盤(pán)選中該菜單控件時(shí),將調(diào)用該事件。菜單控件是一個(gè)對(duì)象;與其它對(duì)象一樣,它具有定義它的外9.2菜單編輯器 VB中的菜單通過(guò)菜單編輯器,即菜單設(shè)計(jì)窗口建立。 進(jìn)入菜單編輯器有4種方法:
?執(zhí)行“工具”菜單中的“菜單編輯器”命令9.2菜單編輯器 VB中的菜單通過(guò)菜單編輯器,即菜單設(shè)計(jì)窗?使用熱鍵Ctrl+E?使用工具欄中的“菜單編輯器”按鈕?在設(shè)計(jì)階段,在窗體上單擊鼠標(biāo)右鍵,出現(xiàn)的快捷菜單上有“菜單編輯器”命令?使用熱鍵Ctrl+E進(jìn)入菜單編輯器后,出現(xiàn)菜單編輯器對(duì)話框,如下圖:數(shù)據(jù)區(qū)編輯區(qū)菜單項(xiàng)顯示區(qū)進(jìn)入菜單編輯器后,出現(xiàn)菜單編輯器對(duì)話框,如下圖:數(shù)據(jù)區(qū)編輯區(qū)將菜單編輯器分為3個(gè)區(qū),上半部分為數(shù)據(jù)區(qū),中間為編輯區(qū),下半部分為菜單項(xiàng)顯示區(qū)。1、數(shù)據(jù)區(qū)
數(shù)據(jù)區(qū)包含有:標(biāo)題、名稱(chēng)、索引、快捷鍵、幫助上下文、協(xié)調(diào)位置、復(fù)選、有效、可見(jiàn)、顯示窗口列表。將菜單編輯器分為3個(gè)區(qū),上半部分為數(shù)據(jù)區(qū),中間為編輯區(qū),下半?標(biāo)題:它是一個(gè)文本框,用來(lái)輸入所建立的菜單運(yùn)行時(shí)顯示的內(nèi)容,相當(dāng)于控件的Caption屬性。如果在該處輸入一個(gè)減號(hào),它將顯示一個(gè)分隔線。?名稱(chēng):它是一個(gè)文本框,用來(lái)輸入所建立菜單的控件名,相當(dāng)于控件的Name屬性。需要注意的是,每個(gè)菜單項(xiàng)都是一個(gè)控件,都要取一個(gè)唯一的控件名。?索引:用來(lái)為用戶建立的控件數(shù)組設(shè)立下標(biāo)。?快捷鍵:是一個(gè)列表框,用來(lái)設(shè)置菜單項(xiàng)的快捷鍵(熱鍵)。?幫助上下文:在該處鍵入一個(gè)數(shù)值,這個(gè)值用來(lái)在幫助文件中查找相應(yīng)的幫助主題。?協(xié)調(diào)位置:它是一個(gè)列表框,用來(lái)確定菜單或菜單項(xiàng)是否出現(xiàn)或在什么位置顯示。?標(biāo)題:它是一個(gè)文本框,用來(lái)輸入所建立的菜單運(yùn)行時(shí)顯示的內(nèi)容?復(fù)選:當(dāng)選擇此項(xiàng)目時(shí),該項(xiàng)菜單可以通過(guò)單擊在菜單項(xiàng)前加上指定的記號(hào)。它不改變菜單項(xiàng)的作用,也不影響事件過(guò)程對(duì)于任何對(duì)象的執(zhí)行結(jié)果,只是設(shè)置或重新設(shè)置菜單項(xiàng)旁的符號(hào)。利用這個(gè)屬性,可以指明某個(gè)菜單項(xiàng)當(dāng)前是否處于活動(dòng)狀態(tài)?有效:用來(lái)設(shè)置菜單項(xiàng)的操作狀態(tài)。在默認(rèn)情況下,該屬性被設(shè)置為T(mén)rue,表明相應(yīng)的菜單項(xiàng)可以對(duì)用戶事件做出響應(yīng)。如果此屬性被設(shè)置為False,則在運(yùn)行時(shí),菜單項(xiàng)變?yōu)槭У幕疑?可見(jiàn):確定菜單項(xiàng)是否可見(jiàn)。一個(gè)不可見(jiàn)的菜單項(xiàng)是不能執(zhí)行的,在默認(rèn)情況下,此屬性值為T(mén)rue。當(dāng)制作彈出式菜單也需要用到此屬性。?顯示窗口列表:當(dāng)該選項(xiàng)被設(shè)置為“On”時(shí),將顯示當(dāng)前打開(kāi)的一系列子窗口。它用于多文檔應(yīng)用程序。?復(fù)選:當(dāng)選擇此項(xiàng)目時(shí),該項(xiàng)菜單可以通過(guò)單擊在菜單項(xiàng)前加上指2、編輯區(qū)編輯區(qū)共有7個(gè)按鈕,用來(lái)對(duì)輸入的菜單項(xiàng)進(jìn)行簡(jiǎn)單的編輯。?左右箭頭:用來(lái)產(chǎn)生或取消內(nèi)縮符號(hào)。單擊一次右箭頭可以產(chǎn)生4個(gè)點(diǎn),單擊一次左箭頭可以刪除4個(gè)點(diǎn)。通過(guò)內(nèi)縮的層次來(lái)區(qū)分菜單的層次。?上下箭頭:用來(lái)在菜單項(xiàng)顯示區(qū)中移動(dòng)菜單項(xiàng)的位置。?下一個(gè):開(kāi)始一個(gè)新的菜單項(xiàng)。?插入:插入新的菜單項(xiàng)。?刪除:刪除當(dāng)前菜單項(xiàng)。2、編輯區(qū)編輯區(qū)共有7個(gè)按鈕,用來(lái)對(duì)輸入的菜單項(xiàng)進(jìn)行簡(jiǎn)單的編3、菜單項(xiàng)顯示區(qū) 菜單項(xiàng)顯示區(qū)在菜單設(shè)計(jì)窗口下部,輸入的菜單項(xiàng)在這里顯示,并且通過(guò)內(nèi)縮符號(hào)表明菜單的層次,條形光標(biāo)所在的菜單項(xiàng)為“當(dāng)前菜單項(xiàng)”。3、菜單項(xiàng)顯示區(qū) 菜單項(xiàng)顯示區(qū)在菜單設(shè)計(jì)窗口下部,輸入的菜單?內(nèi)縮一層為4個(gè)點(diǎn),最多20個(gè)點(diǎn)。也就是說(shuō),最多6層菜單。?只有菜單名沒(méi)有菜單項(xiàng)的菜單為頂層菜單。?在“標(biāo)題”欄內(nèi)輸入一個(gè)“-”減號(hào),則表示產(chǎn)生一個(gè)分隔線。?除分隔線外,所有的菜單項(xiàng)都可以接收Click事件。?在輸入菜單項(xiàng)的“標(biāo)題”欄內(nèi),如果在字母前加上“&”字符,則顯示菜單時(shí),在該字母下有下劃線,可以使用Alt+字母的方式打開(kāi)此菜單或執(zhí)行相應(yīng)的菜單命令?內(nèi)縮一層為4個(gè)點(diǎn),最多20個(gè)點(diǎn)。也就是說(shuō),最多6層菜單。11.3用菜單編輯器建立菜單在這一節(jié)中,我們使用一個(gè)例題來(lái)講解菜單編輯器的用法。例題: 設(shè)計(jì)一個(gè)具有菜單的窗體,它有2個(gè)主菜單項(xiàng),一個(gè)是計(jì)算,一個(gè)是清除與退出;在“計(jì)算”菜單中,包含“加減乘除”4個(gè)子菜單項(xiàng),當(dāng)單擊任何一個(gè)計(jì)算菜單項(xiàng),窗體上的標(biāo)簽框的內(nèi)容按照輸入的文本框的內(nèi)容進(jìn)行計(jì)算。清除將進(jìn)行文本框和標(biāo)簽框的內(nèi)容的清除,退出則結(jié)束程序運(yùn)行。11.3用菜單編輯器建立菜單在這一節(jié)中,我們使用一個(gè)例題來(lái)第一步:建立簡(jiǎn)單菜單
界面設(shè)計(jì):?分為2個(gè)主菜單項(xiàng),第一個(gè)“計(jì)算”有4個(gè)子菜單項(xiàng);第二個(gè)“清除與退出”有2個(gè)子菜單項(xiàng)。第一步:建立簡(jiǎn)單菜單菜單設(shè)計(jì)步驟:選取窗體。從“工具”菜單中,選取“菜單編輯器”,或者在“工具欄”上單擊“菜單編輯器”按鈕。在“標(biāo)題”文本框中,為第一個(gè)菜單標(biāo)題鍵入希望在菜單欄上顯示的文本。在“名稱(chēng)”文本框中,鍵入將用來(lái)在代碼中引用該菜單控件的名字。單擊向左或向右箭頭按鈕,可以改變?cè)摽丶目s進(jìn)級(jí)。如果需要的話,還可以設(shè)置控件的其他屬性。這一工作可以在菜單編輯器中做,也可以以后在“屬性”窗口中做。選取“下一個(gè)”就可以再建一個(gè)菜單控件,或者單擊“插入”可以在現(xiàn)有的控件之間增加一個(gè)菜單控件。也可以單擊向上與向下的箭頭按鈕,在現(xiàn)有菜單控件之中移動(dòng)控件。如果窗體所有的菜單控件都已創(chuàng)建,選取“確定”可關(guān)閉菜單編輯器。菜單設(shè)計(jì)步驟:?窗體上有2個(gè)文本框,4個(gè)標(biāo)簽框(運(yùn)算結(jié)果下的方框?yàn)闃?biāo)簽框)?窗體上有2個(gè)文本框,4個(gè)標(biāo)簽框(運(yùn)算結(jié)果下的方框?yàn)闃?biāo)簽框)第二步:編寫(xiě)菜單代碼 編寫(xiě)菜單的程序代碼:首先在窗體的設(shè)計(jì)狀態(tài)下,單擊要編寫(xiě)代碼的菜單項(xiàng)。第二步:編寫(xiě)菜單代碼 編寫(xiě)菜單的程序代碼:首先在窗體的設(shè)計(jì)狀出現(xiàn)代碼編輯器,開(kāi)始編寫(xiě)菜單項(xiàng)中的代碼。
當(dāng)用戶選取一個(gè)菜單控件時(shí),一個(gè)Click事件出現(xiàn)。需要在代碼中為每個(gè)菜單控件編寫(xiě)一個(gè)Click事件過(guò)程。除分隔符條以外的所有菜單控件(以及無(wú)效的或不可見(jiàn)的菜單控件)都能識(shí)別Click事件。出現(xiàn)代碼編輯器,開(kāi)始編寫(xiě)菜單項(xiàng)中的代碼。PrivateSubadd_Click()Label4.Caption=Val(Text1.Text)+Val(Text2.Text)EndSubPrivateSubsub_Click()Label4.Caption=Val(Text1.Text)-Val(Text2.Text)EndSub下面是所有程序代碼:PrivateSubadd_Click()下面是所有程序PrivateSubmul_Click()Label4.Caption=Val(Text1.Text)*Val(Text2.Text)EndSubPrivateSubdiv_Click()IfVal(Text2.Text)<>0ThenLabel4.Caption=Val(Text1.Text)/Val(Text2.Text)ElseLabel4.Caption="除數(shù)為0,不能計(jì)算"EndIfEndSubPrivateSubmul_Click()PrivateSubcls_Click()Text1.Text=""Text2.Text=""Label4.Caption=""EndSubPrivateSubquit_Click()EndEndSubPrivateSubcls_Click()11.4菜單項(xiàng)的控制在使用windows或vb時(shí),有的菜單項(xiàng)呈灰色,有的菜單項(xiàng)前面有“√”號(hào),有的菜單項(xiàng)的某個(gè)字母下面有下劃線等。 這一節(jié)講述如何在菜單項(xiàng)中增加這些屬性。11.4菜單項(xiàng)的控制在使用windows或vb時(shí)1、有效性控制---使菜單命令有效或無(wú)效
所有的菜單控件都具有Enabled屬性,當(dāng)這個(gè)屬性設(shè)為False時(shí),菜單命令無(wú)效使它不響應(yīng)動(dòng)作。當(dāng)Enabled設(shè)為False時(shí),快捷鍵的訪問(wèn)也無(wú)效。一個(gè)無(wú)效的菜單控件會(huì)變暗。例:add.Enabled=False
1、有效性控制---使菜單命令有效或無(wú)效2、菜單項(xiàng)標(biāo)記---顯示菜單控件上的復(fù)選標(biāo)志所謂菜單項(xiàng)標(biāo)記,就是在菜單項(xiàng)前加上一個(gè)“√”.
使用Checked屬性,可以把一個(gè)復(fù)選標(biāo)志放置在菜單上以便:表示打開(kāi)/關(guān)閉條件的狀態(tài)。該屬性為T(mén)rue時(shí),相應(yīng)的菜單項(xiàng)前有“√”標(biāo)記.選取菜單命令可交替地增加和刪除此復(fù)選標(biāo)志。例:qq.Checked=Notqq.Checked2、菜單項(xiàng)標(biāo)記---顯示菜單控件上的復(fù)選標(biāo)志所謂菜單項(xiàng)標(biāo)記3、使菜單控件不可見(jiàn)
在菜單編輯器中,通過(guò)選取被標(biāo)記為Visible的復(fù)選框,可以設(shè)置菜單控件的Visible屬性的初值。在運(yùn)行時(shí),要使一個(gè)菜單控件可見(jiàn)或不可見(jiàn),可以從代碼中設(shè)置其Visible屬性。例:qq.Visible=False
3、使菜單控件不可見(jiàn)4、鍵盤(pán)選擇一般情況下,菜單項(xiàng)通過(guò)鼠標(biāo)選擇,執(zhí)行相應(yīng)的操作。在vb中,可以通過(guò)鍵盤(pán)選擇所需要的菜單項(xiàng)。用鍵盤(pán)選取菜單有兩種方法:熱鍵和訪問(wèn)鍵。熱鍵:可以直接執(zhí)行菜單命令,不必一級(jí)一級(jí)下拉菜單,速度較快。訪問(wèn)鍵:就是菜單項(xiàng)中加了下劃線的字母,只要按Alt和加了下劃線的字母,就可以選擇相應(yīng)的菜單項(xiàng)。用訪問(wèn)鍵選擇菜單項(xiàng)時(shí),必須一級(jí)一級(jí)地選擇。4、鍵盤(pán)選擇一般情況下,菜單項(xiàng)通過(guò)鼠標(biāo)選擇,執(zhí)行相應(yīng)的操作。說(shuō)明:?熱鍵和訪問(wèn)鍵都在菜單設(shè)計(jì)時(shí)直接指定。?為了設(shè)置訪問(wèn)鍵,必須在準(zhǔn)備加下劃線的字母的前面加上一個(gè)“&”.例如: &AddC&opy?訪問(wèn)鍵只能是一個(gè)字符,而且這個(gè)字符必須是鍵盤(pán)上的某個(gè)鍵,否則沒(méi)有實(shí)際意義。?如果用漢字作為菜單項(xiàng)或控件的標(biāo)題,則通常把訪問(wèn)鍵放在標(biāo)題后面的括號(hào)中。 例如:清除(&C)說(shuō)明:?熱鍵和訪問(wèn)鍵都在菜單設(shè)計(jì)時(shí)直接指定。11.5菜單項(xiàng)的增減 前面建立的菜單為固定的,菜單項(xiàng)不能夠增減。如果要增加或減少菜單項(xiàng),必須打開(kāi)菜單設(shè)計(jì)窗口。在運(yùn)行狀態(tài)下如何增減菜單呢??增加菜單項(xiàng)的實(shí)現(xiàn)方法:
?通過(guò)控件數(shù)組來(lái)實(shí)現(xiàn)。
?使用Load語(yǔ)句建立控件數(shù)組中新的下標(biāo)控件。 Load語(yǔ)句的功能是把窗體或控件加載到內(nèi)存中。 它的格式:Load控件名稱(chēng)(下標(biāo))
?設(shè)置新增加的控件屬性。11.5菜單項(xiàng)的增減 前面建立的菜單為固定的,菜單項(xiàng)不能夠?減少菜單項(xiàng)的實(shí)現(xiàn)方法:
?通過(guò)控件數(shù)組來(lái)實(shí)現(xiàn)。
?使用UnLoad語(yǔ)句將控件數(shù)組中的控件卸載。 UnLoad語(yǔ)句的功能是把窗體或控件從內(nèi)存中卸載掉。 它的格式:UnLoad控件數(shù)組名稱(chēng)(下標(biāo)) 注意:卸載控件數(shù)組中的控件時(shí),如果被卸載的控件在數(shù)組中間,后續(xù)的控件下標(biāo)不會(huì)自動(dòng)上移。?減少菜單項(xiàng)的實(shí)現(xiàn)方法:
舉例:編寫(xiě)一個(gè)程序,有一個(gè)主菜單為應(yīng)用程序,應(yīng)用程序菜單下有下面這些菜單項(xiàng):增加應(yīng)用程序、減少應(yīng)用程序和一個(gè)分隔線,當(dāng)單擊增加應(yīng)用程序菜單項(xiàng),窗體上顯示2個(gè)文本框、2個(gè)標(biāo)簽框、1個(gè)確定按鈕,輸入菜單項(xiàng)顯示內(nèi)容和應(yīng)用程序文件名(含路徑),單擊確定按鈕,此內(nèi)容加入菜單,文本框等隱藏;當(dāng)單擊減少應(yīng)用程序,窗體上顯示列表框,里面有應(yīng)用程序項(xiàng),選擇一個(gè),單擊確定按鈕,減少選中的應(yīng)用程序,隱藏列表框等。 舉例:編寫(xiě)一個(gè)程序,有一個(gè)主菜單為應(yīng)用程序,應(yīng)用程序菜單下分析:
?首先,建立菜單,包括:增加應(yīng)用程序、減少應(yīng)用程序、分隔線、應(yīng)用程序(控件數(shù)組,隱藏)。?編寫(xiě)應(yīng)用程序菜單項(xiàng)單擊事件(可使用shell函數(shù))。由于增加的菜單項(xiàng)顯示內(nèi)容不是其應(yīng)用程序名,應(yīng)該聲明一個(gè)模塊級(jí)的數(shù)組用來(lái)放置應(yīng)用程序名,另外還需要增加一個(gè)模塊級(jí)變量保存現(xiàn)有的新增的菜單項(xiàng)個(gè)數(shù)。?增加應(yīng)用程序菜單項(xiàng)單擊事件:顯示文本框等,用戶輸入內(nèi)容后,單擊確定按鈕,將內(nèi)容增加到菜單項(xiàng)中,使用Load命令。?減少應(yīng)用程序菜單項(xiàng)單擊事件:顯示列表框,用戶選擇一個(gè)項(xiàng)目,單擊確定按鈕,將內(nèi)容從菜單項(xiàng)中卸載。注意這里不要直接卸載這個(gè)菜單項(xiàng),應(yīng)該將其后的內(nèi)容往前移動(dòng),然后卸載最后一個(gè)菜單項(xiàng)。?此程序比較復(fù)雜,請(qǐng)察看源程序或者觀看視頻學(xué)習(xí)。?另外:當(dāng)簡(jiǎn)單的幾個(gè)項(xiàng)目暫時(shí)需要隱藏起來(lái),可以使用菜單項(xiàng)的隱藏屬性(visibled)。
分析:11.6彈出式菜單 除了下拉式菜單,Windows還經(jīng)常使用彈出式菜單,幾乎在每個(gè)對(duì)象上單擊鼠標(biāo)器右鍵都會(huì)出現(xiàn)彈出式的快捷菜單。11.6彈出式菜單 除了下拉式菜單,Windows還經(jīng)常使建立彈出式菜單的步驟:?使用菜單編輯器編輯菜單,在主菜單中的菜單名的可見(jiàn)屬性設(shè)置為false。?在需要彈出彈出式菜單的事件過(guò)程中使用PopupMenu方法:
對(duì)象名.PopupMenu菜單名,Flags,X,Y,BoldCommand說(shuō)明:
對(duì)象名:窗體名
菜單名:彈出式菜單的名稱(chēng)
flags參數(shù):在PopupMenu方法中使用flags參數(shù)可以進(jìn)一步定義彈出式菜單的位置與性能。
建立彈出式菜單的步驟: Boldcommand參數(shù):用來(lái)指定在顯示的彈出式菜單中想以粗體字體出現(xiàn)的菜單控件的名稱(chēng)。在彈出式菜單中只能有一個(gè)菜單控件被加粗。
一般來(lái)說(shuō),在程序中,通常把PopupMenu方法放在對(duì)象的MouseDown事件中。此事件可以根據(jù)事件參數(shù)區(qū)分鼠標(biāo)左右鍵的按下。 Boldcommand參數(shù):用來(lái)指定在顯示的彈出式菜單中
舉例:在窗體上,用鼠標(biāo)器右鍵彈出彈出式菜單,菜單中有下面這些菜單項(xiàng),字體設(shè)置、分隔線、字號(hào)增大、字號(hào)減小、分隔線、粗體(復(fù)選)。當(dāng)單擊菜單項(xiàng)時(shí)針對(duì)標(biāo)簽框執(zhí)行對(duì)應(yīng)的操作。分析: 首先:設(shè)置菜單,注意主菜單項(xiàng)為不可見(jiàn)。 編制代碼: 舉例:在窗體上,用鼠標(biāo)器右鍵彈出彈出式菜單,菜單中有下面這'初始化粗體菜單項(xiàng)起始狀態(tài)PrivateSubForm_Load()Mbold.Checked=FalseEndSub
'標(biāo)簽框的內(nèi)容字號(hào)變小PrivateSubMsizesub_Click()Label1.FontSize=Label1.FontSize-3EndSub
'標(biāo)簽框的內(nèi)容字號(hào)變大PrivateSubMsizeadd_Click()Label1.FontSize=Label1.FontSize+3EndSub'初始化粗體菜單項(xiàng)起始狀態(tài)'設(shè)置菜單中粗體,設(shè)置標(biāo)簽中粗體PrivateSubMbold_Click()Mbold.Checked=NotMbold.CheckedLabel1.FontBold=Mbold.CheckedEndSub
'當(dāng)鼠標(biāo)右鍵單擊標(biāo)簽,彈出菜單'注意參數(shù)x,y為鼠標(biāo)相對(duì)于標(biāo)簽的頂部和右部的位置PrivateSubLabel1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuMset,,X+Label1.Left,Y+Label1.TopEndIfEndSub'設(shè)置菜單中粗體,設(shè)置標(biāo)簽中粗體'當(dāng)鼠標(biāo)右鍵單擊窗體,彈出菜單PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuMset,,X,YEndIfEndSub'當(dāng)鼠標(biāo)右鍵單擊窗體,彈出菜單11.3工
具
欄
VB提供了工具欄Toolbar控件,可以方便地為應(yīng)用程序制作工具欄,為了使工具按鈕更生動(dòng),VB還提供了圖像列表ImageList控件,使用這兩個(gè)控件可以制作出非常形象的應(yīng)用程序工具欄。但這兩個(gè)控件不是標(biāo)準(zhǔn)控件,使用之前要把它們添加到工具箱中,具體操作方法是:(1) 右鍵單擊【工具箱】空白位置,選擇彈出菜單中的【部件】命令,彈出【部件】對(duì)話框;(2) 在對(duì)話框的【控件】列表框中選擇MicorSoftWindowsCommonControls6.0選項(xiàng)(使該選項(xiàng)前的復(fù)選框中出現(xiàn)對(duì)鉤);(3)單擊【確定】按鈕。此后,在工具箱中增加一組控件
11.3工具欄VB提供了工具欄Toolbar控設(shè)計(jì)工具欄的主要步驟是:(1) 將Toolbar和ImageList添加到窗體。Toolbar自動(dòng)顯示在窗體頂部,ImageList運(yùn)行程序時(shí)不可見(jiàn),它只是存放圖標(biāo)的數(shù)據(jù)庫(kù)。(2) 為ImageList添加所需圖標(biāo)。(3) 創(chuàng)建Toolbar的按鈕對(duì)象。(4)編寫(xiě)按鈕對(duì)象的事件過(guò)程。
設(shè)計(jì)工具欄的主要步驟是:為ImageList添加所需圖標(biāo)
把ImageList控件添加到窗體上,右單擊該控件,從彈出的快捷菜單中選擇【屬性】,便打開(kāi)【屬性頁(yè)】對(duì)話框.
為ImageList添加所需圖標(biāo)創(chuàng)建Toolbar的按鈕對(duì)象
把Toolbar控件添加到窗體上,右單擊該控件,從彈出的快捷菜單中選擇【屬性】,便打開(kāi)Toolbar控件【屬性頁(yè)】對(duì)話框。通用卡設(shè)置通用卡主要用于連接ImageList,從【圖像列表】的下拉列表中選擇ImageList控件
創(chuàng)建Toolbar的按鈕對(duì)象通用卡設(shè)置菜單程序設(shè)計(jì)課件l
插入按鈕:在工具欄添加一個(gè)按鈕,每次單擊【插入按鈕】,系統(tǒng)在索引號(hào)指定的按鈕之后插入一個(gè)按鈕。
l
索引:工具欄中按鈕的序號(hào),索引號(hào)從1開(kāi)始。每次單擊【插入按鈕】,系統(tǒng)在索引號(hào)指定的按鈕之后插入一個(gè)按鈕,并自動(dòng)生成索引號(hào),
在事件過(guò)程中可引用索引號(hào)。l
關(guān)鍵字:可選項(xiàng),按鈕的名稱(chēng),可在事件過(guò)程中引用。l
圖像:可以輸入ImageList控件圖標(biāo)的序號(hào)(索引號(hào)),也可以輸入ImageList控件圖標(biāo)的名稱(chēng)(關(guān)鍵字),代表在Toolbar的按鈕中引用索引號(hào)或關(guān)鍵字指定的圖標(biāo)。l
樣式:按鈕的形式,例如,普通按鈕為0,開(kāi)關(guān)按鈕為1,分隔線按鈕為3等。l插入按鈕:在工具欄添加一個(gè)按鈕,每次單擊【插入按鈕】,11.4狀態(tài)欄StatusBar狀態(tài)欄常用于顯示系統(tǒng)信息和對(duì)用戶的提示,如:系統(tǒng)日期和時(shí)間、軟件版本、光標(biāo)的當(dāng)前位置、鍵盤(pán)的狀態(tài)等。狀態(tài)欄一般在窗口的底部。把StatusBar控件添加到窗體上,右鍵單擊該控件,從彈出的快捷菜單中選擇【屬性】,便打開(kāi)StatusBar控件【屬性頁(yè)】對(duì)話框。通用卡設(shè)置樣式:選擇狀態(tài)欄的樣式,可取0或1,0是普通狀態(tài)欄,1是簡(jiǎn)單狀態(tài)欄。簡(jiǎn)單狀態(tài)欄只有一個(gè)窗格,普通狀態(tài)欄允許使用多個(gè)窗格。11.4狀態(tài)欄StatusBar狀態(tài)欄常用于顯示系統(tǒng)信窗格卡設(shè)置
窗格卡設(shè)置l
插入窗格:在狀態(tài)欄添加一個(gè)窗格,每次單擊【插入窗格】,系統(tǒng)在索引號(hào)指定的窗格之后插入一個(gè)窗格。l
索引:狀態(tài)欄中窗格的序號(hào),索引號(hào)從1開(kāi)始。每次單擊【插入窗格】,系統(tǒng)在索引號(hào)指定的窗格之后插入一個(gè)窗格,并自動(dòng)為新窗格生成索引號(hào),索引號(hào)可在事件過(guò)程中引用。l
刪除窗格:刪除選擇(索引號(hào)指定)的窗格。l文本:窗格上顯示的字符串l
工具提示文本:當(dāng)鼠標(biāo)指針指向窗格并停留時(shí),出現(xiàn)的提示信息。l
關(guān)鍵字:窗格的名稱(chēng),可在事件過(guò)程中引用,可選項(xiàng)。l
樣式:下拉列表,選擇其中列表項(xiàng)目,便指定了該窗格顯示的信息。
l插入窗格:在狀態(tài)欄添加一個(gè)窗格,每次單擊【插入窗格】索引 樣式 說(shuō)明0 sbrText 顯示文本,確省值1 sbrCaps 顯示CapsLock鍵狀態(tài)2 sbrNum 顯示NumLock鍵狀態(tài)3sbrIns 顯示Insert鍵狀態(tài)4 sbrScrl 顯示ScrollLock鍵狀態(tài)5 SbrTime 顯示系統(tǒng)時(shí)間6 sbrData 顯示系統(tǒng)日期索引 樣式 說(shuō)明第九章菜單程序設(shè)計(jì) 在Windows環(huán)境下,幾乎所有的應(yīng)用程序都通過(guò)菜單來(lái)實(shí)現(xiàn)各種操作。 對(duì)于VB應(yīng)用程序來(lái)說(shuō),當(dāng)操作比較簡(jiǎn)單時(shí),一般通過(guò)控件來(lái)執(zhí)行,而當(dāng)要完成比較復(fù)雜的操作時(shí),使用菜單具有十分明顯的優(yōu)勢(shì)。第九章菜單程序設(shè)計(jì)9.1VisualBasic中的菜單1、菜單的作用和分類(lèi):?作用:
?提供人機(jī)對(duì)話界面,便于選擇應(yīng)用程序的功能。
?管理應(yīng)用系統(tǒng),控制各種功能模塊的運(yùn)行。?分類(lèi):
?下拉式菜單:典型的窗口式菜單
?彈出式菜單:鼠標(biāo)器右鍵單擊后彈出的快捷菜單9.1VisualBasic中的菜單1、菜單的作用和菜單的優(yōu)點(diǎn):
?下拉式菜單的優(yōu)點(diǎn):
?整體感強(qiáng),一目了然,直觀方便,易于學(xué)習(xí)。 ?具有導(dǎo)航功能,方便在各個(gè)菜單中查詢要使用的功能。
?占用屏幕空間小,只占用窗體上邊一行,需要時(shí)下拉出子菜單。
菜單的優(yōu)點(diǎn):下拉式菜單彈出式菜單下拉式菜單彈出式菜單
菜單控件是一個(gè)對(duì)象;與其它對(duì)象一樣,它具有定義它的外觀與行為的屬性。在設(shè)計(jì)或運(yùn)行時(shí)可以設(shè)置Caption屬性、Enabled和Visible屬性、Checked屬性以及其它屬性。菜單控件只包含一個(gè)事件,即Click事件,當(dāng)用鼠標(biāo)或鍵盤(pán)選中該菜單控件時(shí),將調(diào)用該事件。菜單控件是一個(gè)對(duì)象;與其它對(duì)象一樣,它具有定義它的外9.2菜單編輯器 VB中的菜單通過(guò)菜單編輯器,即菜單設(shè)計(jì)窗口建立。 進(jìn)入菜單編輯器有4種方法:
?執(zhí)行“工具”菜單中的“菜單編輯器”命令9.2菜單編輯器 VB中的菜單通過(guò)菜單編輯器,即菜單設(shè)計(jì)窗?使用熱鍵Ctrl+E?使用工具欄中的“菜單編輯器”按鈕?在設(shè)計(jì)階段,在窗體上單擊鼠標(biāo)右鍵,出現(xiàn)的快捷菜單上有“菜單編輯器”命令?使用熱鍵Ctrl+E進(jìn)入菜單編輯器后,出現(xiàn)菜單編輯器對(duì)話框,如下圖:數(shù)據(jù)區(qū)編輯區(qū)菜單項(xiàng)顯示區(qū)進(jìn)入菜單編輯器后,出現(xiàn)菜單編輯器對(duì)話框,如下圖:數(shù)據(jù)區(qū)編輯區(qū)將菜單編輯器分為3個(gè)區(qū),上半部分為數(shù)據(jù)區(qū),中間為編輯區(qū),下半部分為菜單項(xiàng)顯示區(qū)。1、數(shù)據(jù)區(qū)
數(shù)據(jù)區(qū)包含有:標(biāo)題、名稱(chēng)、索引、快捷鍵、幫助上下文、協(xié)調(diào)位置、復(fù)選、有效、可見(jiàn)、顯示窗口列表。將菜單編輯器分為3個(gè)區(qū),上半部分為數(shù)據(jù)區(qū),中間為編輯區(qū),下半?標(biāo)題:它是一個(gè)文本框,用來(lái)輸入所建立的菜單運(yùn)行時(shí)顯示的內(nèi)容,相當(dāng)于控件的Caption屬性。如果在該處輸入一個(gè)減號(hào),它將顯示一個(gè)分隔線。?名稱(chēng):它是一個(gè)文本框,用來(lái)輸入所建立菜單的控件名,相當(dāng)于控件的Name屬性。需要注意的是,每個(gè)菜單項(xiàng)都是一個(gè)控件,都要取一個(gè)唯一的控件名。?索引:用來(lái)為用戶建立的控件數(shù)組設(shè)立下標(biāo)。?快捷鍵:是一個(gè)列表框,用來(lái)設(shè)置菜單項(xiàng)的快捷鍵(熱鍵)。?幫助上下文:在該處鍵入一個(gè)數(shù)值,這個(gè)值用來(lái)在幫助文件中查找相應(yīng)的幫助主題。?協(xié)調(diào)位置:它是一個(gè)列表框,用來(lái)確定菜單或菜單項(xiàng)是否出現(xiàn)或在什么位置顯示。?標(biāo)題:它是一個(gè)文本框,用來(lái)輸入所建立的菜單運(yùn)行時(shí)顯示的內(nèi)容?復(fù)選:當(dāng)選擇此項(xiàng)目時(shí),該項(xiàng)菜單可以通過(guò)單擊在菜單項(xiàng)前加上指定的記號(hào)。它不改變菜單項(xiàng)的作用,也不影響事件過(guò)程對(duì)于任何對(duì)象的執(zhí)行結(jié)果,只是設(shè)置或重新設(shè)置菜單項(xiàng)旁的符號(hào)。利用這個(gè)屬性,可以指明某個(gè)菜單項(xiàng)當(dāng)前是否處于活動(dòng)狀態(tài)?有效:用來(lái)設(shè)置菜單項(xiàng)的操作狀態(tài)。在默認(rèn)情況下,該屬性被設(shè)置為T(mén)rue,表明相應(yīng)的菜單項(xiàng)可以對(duì)用戶事件做出響應(yīng)。如果此屬性被設(shè)置為False,則在運(yùn)行時(shí),菜單項(xiàng)變?yōu)槭У幕疑?可見(jiàn):確定菜單項(xiàng)是否可見(jiàn)。一個(gè)不可見(jiàn)的菜單項(xiàng)是不能執(zhí)行的,在默認(rèn)情況下,此屬性值為T(mén)rue。當(dāng)制作彈出式菜單也需要用到此屬性。?顯示窗口列表:當(dāng)該選項(xiàng)被設(shè)置為“On”時(shí),將顯示當(dāng)前打開(kāi)的一系列子窗口。它用于多文檔應(yīng)用程序。?復(fù)選:當(dāng)選擇此項(xiàng)目時(shí),該項(xiàng)菜單可以通過(guò)單擊在菜單項(xiàng)前加上指2、編輯區(qū)編輯區(qū)共有7個(gè)按鈕,用來(lái)對(duì)輸入的菜單項(xiàng)進(jìn)行簡(jiǎn)單的編輯。?左右箭頭:用來(lái)產(chǎn)生或取消內(nèi)縮符號(hào)。單擊一次右箭頭可以產(chǎn)生4個(gè)點(diǎn),單擊一次左箭頭可以刪除4個(gè)點(diǎn)。通過(guò)內(nèi)縮的層次來(lái)區(qū)分菜單的層次。?上下箭頭:用來(lái)在菜單項(xiàng)顯示區(qū)中移動(dòng)菜單項(xiàng)的位置。?下一個(gè):開(kāi)始一個(gè)新的菜單項(xiàng)。?插入:插入新的菜單項(xiàng)。?刪除:刪除當(dāng)前菜單項(xiàng)。2、編輯區(qū)編輯區(qū)共有7個(gè)按鈕,用來(lái)對(duì)輸入的菜單項(xiàng)進(jìn)行簡(jiǎn)單的編3、菜單項(xiàng)顯示區(qū) 菜單項(xiàng)顯示區(qū)在菜單設(shè)計(jì)窗口下部,輸入的菜單項(xiàng)在這里顯示,并且通過(guò)內(nèi)縮符號(hào)表明菜單的層次,條形光標(biāo)所在的菜單項(xiàng)為“當(dāng)前菜單項(xiàng)”。3、菜單項(xiàng)顯示區(qū) 菜單項(xiàng)顯示區(qū)在菜單設(shè)計(jì)窗口下部,輸入的菜單?內(nèi)縮一層為4個(gè)點(diǎn),最多20個(gè)點(diǎn)。也就是說(shuō),最多6層菜單。?只有菜單名沒(méi)有菜單項(xiàng)的菜單為頂層菜單。?在“標(biāo)題”欄內(nèi)輸入一個(gè)“-”減號(hào),則表示產(chǎn)生一個(gè)分隔線。?除分隔線外,所有的菜單項(xiàng)都可以接收Click事件。?在輸入菜單項(xiàng)的“標(biāo)題”欄內(nèi),如果在字母前加上“&”字符,則顯示菜單時(shí),在該字母下有下劃線,可以使用Alt+字母的方式打開(kāi)此菜單或執(zhí)行相應(yīng)的菜單命令?內(nèi)縮一層為4個(gè)點(diǎn),最多20個(gè)點(diǎn)。也就是說(shuō),最多6層菜單。11.3用菜單編輯器建立菜單在這一節(jié)中,我們使用一個(gè)例題來(lái)講解菜單編輯器的用法。例題: 設(shè)計(jì)一個(gè)具有菜單的窗體,它有2個(gè)主菜單項(xiàng),一個(gè)是計(jì)算,一個(gè)是清除與退出;在“計(jì)算”菜單中,包含“加減乘除”4個(gè)子菜單項(xiàng),當(dāng)單擊任何一個(gè)計(jì)算菜單項(xiàng),窗體上的標(biāo)簽框的內(nèi)容按照輸入的文本框的內(nèi)容進(jìn)行計(jì)算。清除將進(jìn)行文本框和標(biāo)簽框的內(nèi)容的清除,退出則結(jié)束程序運(yùn)行。11.3用菜單編輯器建立菜單在這一節(jié)中,我們使用一個(gè)例題來(lái)第一步:建立簡(jiǎn)單菜單
界面設(shè)計(jì):?分為2個(gè)主菜單項(xiàng),第一個(gè)“計(jì)算”有4個(gè)子菜單項(xiàng);第二個(gè)“清除與退出”有2個(gè)子菜單項(xiàng)。第一步:建立簡(jiǎn)單菜單菜單設(shè)計(jì)步驟:選取窗體。從“工具”菜單中,選取“菜單編輯器”,或者在“工具欄”上單擊“菜單編輯器”按鈕。在“標(biāo)題”文本框中,為第一個(gè)菜單標(biāo)題鍵入希望在菜單欄上顯示的文本。在“名稱(chēng)”文本框中,鍵入將用來(lái)在代碼中引用該菜單控件的名字。單擊向左或向右箭頭按鈕,可以改變?cè)摽丶目s進(jìn)級(jí)。如果需要的話,還可以設(shè)置控件的其他屬性。這一工作可以在菜單編輯器中做,也可以以后在“屬性”窗口中做。選取“下一個(gè)”就可以再建一個(gè)菜單控件,或者單擊“插入”可以在現(xiàn)有的控件之間增加一個(gè)菜單控件。也可以單擊向上與向下的箭頭按鈕,在現(xiàn)有菜單控件之中移動(dòng)控件。如果窗體所有的菜單控件都已創(chuàng)建,選取“確定”可關(guān)閉菜單編輯器。菜單設(shè)計(jì)步驟:?窗體上有2個(gè)文本框,4個(gè)標(biāo)簽框(運(yùn)算結(jié)果下的方框?yàn)闃?biāo)簽框)?窗體上有2個(gè)文本框,4個(gè)標(biāo)簽框(運(yùn)算結(jié)果下的方框?yàn)闃?biāo)簽框)第二步:編寫(xiě)菜單代碼 編寫(xiě)菜單的程序代碼:首先在窗體的設(shè)計(jì)狀態(tài)下,單擊要編寫(xiě)代碼的菜單項(xiàng)。第二步:編寫(xiě)菜單代碼 編寫(xiě)菜單的程序代碼:首先在窗體的設(shè)計(jì)狀出現(xiàn)代碼編輯器,開(kāi)始編寫(xiě)菜單項(xiàng)中的代碼。
當(dāng)用戶選取一個(gè)菜單控件時(shí),一個(gè)Click事件出現(xiàn)。需要在代碼中為每個(gè)菜單控件編寫(xiě)一個(gè)Click事件過(guò)程。除分隔符條以外的所有菜單控件(以及無(wú)效的或不可見(jiàn)的菜單控件)都能識(shí)別Click事件。出現(xiàn)代碼編輯器,開(kāi)始編寫(xiě)菜單項(xiàng)中的代碼。PrivateSubadd_Click()Label4.Caption=Val(Text1.Text)+Val(Text2.Text)EndSubPrivateSubsub_Click()Label4.Caption=Val(Text1.Text)-Val(Text2.Text)EndSub下面是所有程序代碼:PrivateSubadd_Click()下面是所有程序PrivateSubmul_Click()Label4.Caption=Val(Text1.Text)*Val(Text2.Text)EndSubPrivateSubdiv_Click()IfVal(Text2.Text)<>0ThenLabel4.Caption=Val(Text1.Text)/Val(Text2.Text)ElseLabel4.Caption="除數(shù)為0,不能計(jì)算"EndIfEndSubPrivateSubmul_Click()PrivateSubcls_Click()Text1.Text=""Text2.Text=""Label4.Caption=""EndSubPrivateSubquit_Click()EndEndSubPrivateSubcls_Click()11.4菜單項(xiàng)的控制在使用windows或vb時(shí),有的菜單項(xiàng)呈灰色,有的菜單項(xiàng)前面有“√”號(hào),有的菜單項(xiàng)的某個(gè)字母下面有下劃線等。 這一節(jié)講述如何在菜單項(xiàng)中增加這些屬性。11.4菜單項(xiàng)的控制在使用windows或vb時(shí)1、有效性控制---使菜單命令有效或無(wú)效
所有的菜單控件都具有Enabled屬性,當(dāng)這個(gè)屬性設(shè)為False時(shí),菜單命令無(wú)效使它不響應(yīng)動(dòng)作。當(dāng)Enabled設(shè)為False時(shí),快捷鍵的訪問(wèn)也無(wú)效。一個(gè)無(wú)效的菜單控件會(huì)變暗。例:add.Enabled=False
1、有效性控制---使菜單命令有效或無(wú)效2、菜單項(xiàng)標(biāo)記---顯示菜單控件上的復(fù)選標(biāo)志所謂菜單項(xiàng)標(biāo)記,就是在菜單項(xiàng)前加上一個(gè)“√”.
使用Checked屬性,可以把一個(gè)復(fù)選標(biāo)志放置在菜單上以便:表示打開(kāi)/關(guān)閉條件的狀態(tài)。該屬性為T(mén)rue時(shí),相應(yīng)的菜單項(xiàng)前有“√”標(biāo)記.選取菜單命令可交替地增加和刪除此復(fù)選標(biāo)志。例:qq.Checked=Notqq.Checked2、菜單項(xiàng)標(biāo)記---顯示菜單控件上的復(fù)選標(biāo)志所謂菜單項(xiàng)標(biāo)記3、使菜單控件不可見(jiàn)
在菜單編輯器中,通過(guò)選取被標(biāo)記為Visible的復(fù)選框,可以設(shè)置菜單控件的Visible屬性的初值。在運(yùn)行時(shí),要使一個(gè)菜單控件可見(jiàn)或不可見(jiàn),可以從代碼中設(shè)置其Visible屬性。例:qq.Visible=False
3、使菜單控件不可見(jiàn)4、鍵盤(pán)選擇一般情況下,菜單項(xiàng)通過(guò)鼠標(biāo)選擇,執(zhí)行相應(yīng)的操作。在vb中,可以通過(guò)鍵盤(pán)選擇所需要的菜單項(xiàng)。用鍵盤(pán)選取菜單有兩種方法:熱鍵和訪問(wèn)鍵。熱鍵:可以直接執(zhí)行菜單命令,不必一級(jí)一級(jí)下拉菜單,速度較快。訪問(wèn)鍵:就是菜單項(xiàng)中加了下劃線的字母,只要按Alt和加了下劃線的字母,就可以選擇相應(yīng)的菜單項(xiàng)。用訪問(wèn)鍵選擇菜單項(xiàng)時(shí),必須一級(jí)一級(jí)地選擇。4、鍵盤(pán)選擇一般情況下,菜單項(xiàng)通過(guò)鼠標(biāo)選擇,執(zhí)行相應(yīng)的操作。說(shuō)明:?熱鍵和訪問(wèn)鍵都在菜單設(shè)計(jì)時(shí)直接指定。?為了設(shè)置訪問(wèn)鍵,必須在準(zhǔn)備加下劃線的字母的前面加上一個(gè)“&”.例如: &AddC&opy?訪問(wèn)鍵只能是一個(gè)字符,而且這個(gè)字符必須是鍵盤(pán)上的某個(gè)鍵,否則沒(méi)有實(shí)際意義。?如果用漢字作為菜單項(xiàng)或控件的標(biāo)題,則通常把訪問(wèn)鍵放在標(biāo)題后面的括號(hào)中。 例如:清除(&C)說(shuō)明:?熱鍵和訪問(wèn)鍵都在菜單設(shè)計(jì)時(shí)直接指定。11.5菜單項(xiàng)的增減 前面建立的菜單為固定的,菜單項(xiàng)不能夠增減。如果要增加或減少菜單項(xiàng),必須打開(kāi)菜單設(shè)計(jì)窗口。在運(yùn)行狀態(tài)下如何增減菜單呢??增加菜單項(xiàng)的實(shí)現(xiàn)方法:
?通過(guò)控件數(shù)組來(lái)實(shí)現(xiàn)。
?使用Load語(yǔ)句建立控件數(shù)組中新的下標(biāo)控件。 Load語(yǔ)句的功能是把窗體或控件加載到內(nèi)存中。 它的格式:Load控件名稱(chēng)(下標(biāo))
?設(shè)置新增加的控件屬性。11.5菜單項(xiàng)的增減 前面建立的菜單為固定的,菜單項(xiàng)不能夠?減少菜單項(xiàng)的實(shí)現(xiàn)方法:
?通過(guò)控件數(shù)組來(lái)實(shí)現(xiàn)。
?使用UnLoad語(yǔ)句將控件數(shù)組中的控件卸載。 UnLoad語(yǔ)句的功能是把窗體或控件從內(nèi)存中卸載掉。 它的格式:UnLoad控件數(shù)組名稱(chēng)(下標(biāo)) 注意:卸載控件數(shù)組中的控件時(shí),如果被卸載的控件在數(shù)組中間,后續(xù)的控件下標(biāo)不會(huì)自動(dòng)上移。?減少菜單項(xiàng)的實(shí)現(xiàn)方法:
舉例:編寫(xiě)一個(gè)程序,有一個(gè)主菜單為應(yīng)用程序,應(yīng)用程序菜單下有下面這些菜單項(xiàng):增加應(yīng)用程序、減少應(yīng)用程序和一個(gè)分隔線,當(dāng)單擊增加應(yīng)用程序菜單項(xiàng),窗體上顯示2個(gè)文本框、2個(gè)標(biāo)簽框、1個(gè)確定按鈕,輸入菜單項(xiàng)顯示內(nèi)容和應(yīng)用程序文件名(含路徑),單擊確定按鈕,此內(nèi)容加入菜單,文本框等隱藏;當(dāng)單擊減少應(yīng)用程序,窗體上顯示列表框,里面有應(yīng)用程序項(xiàng),選擇一個(gè),單擊確定按鈕,減少選中的應(yīng)用程序,隱藏列表框等。 舉例:編寫(xiě)一個(gè)程序,有一個(gè)主菜單為應(yīng)用程序,應(yīng)用程序菜單下分析:
?首先,建立菜單,包括:增加應(yīng)用程序、減少應(yīng)用程序、分隔線、應(yīng)用程序(控件數(shù)組,隱藏)。?編寫(xiě)應(yīng)用程序菜單項(xiàng)單擊事件(可使用shell函數(shù))。由于增加的菜單項(xiàng)顯示內(nèi)容不是其應(yīng)用程序名,應(yīng)該聲明一個(gè)模塊級(jí)的數(shù)組用來(lái)放置應(yīng)用程序名,另外還需要增加一個(gè)模塊級(jí)變量保存現(xiàn)有的新增的菜單項(xiàng)個(gè)數(shù)。?增加應(yīng)用程序菜單項(xiàng)單擊事件:顯示文本框等,用戶輸入內(nèi)容后,單擊確定按鈕,將內(nèi)容增加到菜單項(xiàng)中,使用Load命令。?減少應(yīng)用程序菜單項(xiàng)單擊事件:顯示列表框,用戶選擇一個(gè)項(xiàng)目,單擊確定按鈕,將內(nèi)容從菜單項(xiàng)中卸載。注意這里不要直接卸載這個(gè)菜單項(xiàng),應(yīng)該將其后的內(nèi)容往前移動(dòng),然后卸載最后一個(gè)菜單項(xiàng)。?此程序比較復(fù)雜,請(qǐng)察看源程序或者觀看視頻學(xué)習(xí)。?另外:當(dāng)簡(jiǎn)單的幾個(gè)項(xiàng)目暫時(shí)需要隱藏起來(lái),可以使用菜單項(xiàng)的隱藏屬性(visibled)。
分析:11.6彈出式菜單 除了下拉式菜單,Windows還經(jīng)常使用彈出式菜單,幾乎在每個(gè)對(duì)象上單擊鼠標(biāo)器右鍵都會(huì)出現(xiàn)彈出式的快捷菜單。11.6彈出式菜單 除了下拉式菜單,Windows還經(jīng)常使建立彈出式菜單的步驟:?使用菜單編輯器編輯菜單,在主菜單中的菜單名的可見(jiàn)屬性設(shè)置為false。?在需要彈出彈出式菜單的事件過(guò)程中使用PopupMenu方法:
對(duì)象名.PopupMenu菜單名,Flags,X,Y,BoldCommand說(shuō)明:
對(duì)象名:窗體名
菜單名:彈出式菜單的名稱(chēng)
flags參數(shù):在PopupMenu方法中使用flags參數(shù)可以進(jìn)一步定義彈出式菜單的位置與性能。
建立彈出式菜單的步驟: Boldcommand參數(shù):用來(lái)指定在顯示的彈出式菜單中想以粗體字體出現(xiàn)的菜單控件的名稱(chēng)。在彈出式菜單中只能有一個(gè)菜單控件被加粗。
一般來(lái)說(shuō),在程序中,通常把PopupMenu方法放在對(duì)象的MouseDown事件中。此事件可以根據(jù)事件參數(shù)區(qū)分鼠標(biāo)左右鍵的按下。 Boldcommand參數(shù):用來(lái)指定在顯示的彈出式菜單中
舉例:在窗體上,用鼠標(biāo)器右鍵彈出彈出式菜單,菜單中有下面這些菜單項(xiàng),字體設(shè)置、分隔線、字號(hào)增大、字號(hào)減小、分隔線、粗體(復(fù)選)。當(dāng)單擊菜單項(xiàng)時(shí)針對(duì)標(biāo)簽框執(zhí)行對(duì)應(yīng)的操作。分析: 首先:設(shè)置菜單,注意主菜單項(xiàng)為不可見(jiàn)。 編制代碼: 舉例:在窗體上,用鼠標(biāo)器右鍵彈出彈出式菜單,菜單中有下面這'初始化粗體菜單項(xiàng)起始狀態(tài)PrivateSubForm_Load()Mbold.Checked=FalseEndSub
'標(biāo)簽框的內(nèi)容字號(hào)變小PrivateSubMsizesub_Click()Label1.FontSize=Label1.FontSize-3EndSub
'標(biāo)簽框的內(nèi)容字號(hào)變大PrivateSubMsizeadd_Click()Label1.FontSize=Label1.FontSize+3EndSub'初始化粗體菜單項(xiàng)起始狀態(tài)'設(shè)置菜單中粗體,設(shè)置標(biāo)簽中粗體PrivateSubMbold_Click()Mbold.Checked=NotMbold.CheckedLabel1.FontBold=Mbold.CheckedEndSub
'當(dāng)鼠標(biāo)右鍵單擊標(biāo)簽,彈出菜單'注意參數(shù)x,y為鼠標(biāo)相對(duì)于標(biāo)簽的頂部和右部的位置PrivateSubLabel1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuMset,,X+Label1.Left,Y+Label1.TopEndIfEndSub'設(shè)置菜單中粗體,設(shè)置標(biāo)簽中粗體'當(dāng)鼠標(biāo)右鍵單擊窗體,彈出菜單PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuMset,,X,YEndIfEndSub'當(dāng)鼠標(biāo)右鍵單擊窗體,彈出菜單11.3工
具
欄
VB提供了工具欄Toolbar控件,可以方便地為應(yīng)用程序制作工具欄,為了使工具按鈕更生動(dòng),VB還提供了圖像列表ImageList控件,使用這兩個(gè)控件可以制作出非常形象的應(yīng)用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年影視作品攝制合同協(xié)議書(shū)(含分成模式)
- 專(zhuān)業(yè)律師轉(zhuǎn)租合同
- 2024年度智能物流系統(tǒng)設(shè)計(jì)與實(shí)施合同
- 2024施工合同司法解釋
- 2024辦公樓零星維修項(xiàng)目建設(shè)項(xiàng)目施工合同
- 農(nóng)村合作信用社貸款合同
- 2024沒(méi)有借條、合同的借貸關(guān)系案例
- 工程承包合同模板簡(jiǎn)化版
- 校園學(xué)生安全保障協(xié)議書(shū)樣本
- 超值供貨合同模板匯編
- 二年級(jí)排球教案
- 天津市和平區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期中考試英語(yǔ)試題
- 2024二十屆三中全會(huì)知識(shí)競(jìng)賽題庫(kù)及答案
- 預(yù)防接種工作規(guī)范(2023年版)解讀課件
- 醫(yī)院檢驗(yàn)外包服務(wù)項(xiàng)目招標(biāo)文件
- 檔案整理及數(shù)字化服務(wù)方案
- 正高級(jí)會(huì)計(jì)師答辯面試資料
- 道路橋涵工程施工方案(完整版)
- 園林綠化工程施工及驗(yàn)收規(guī)范(完整版)
- 光伏冬季施工方案(1)(完整版)
- 60萬(wàn)噸MTO裝置中交發(fā)言稿
評(píng)論
0/150
提交評(píng)論