版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目八對話框、菜單與工具欄設(shè)計任務(wù)8.1對話框設(shè)計任務(wù)8.2菜單設(shè)計任務(wù)8.3工具欄設(shè)計
任務(wù)8.1對?話?框?設(shè)?計
任務(wù)導(dǎo)入
一些應(yīng)用程序中常常需要進行打開或保存文件、選擇顏色和字體、打印等操作,這就需要應(yīng)用程序提供相應(yīng)的對話框以方便使用。這些對話框作為Windows的資源,在VB中已被做成公共對話框控件。公共對話框(CommonDialog)控件為用戶提供了一組標(biāo)準的系統(tǒng)對話框,可以使用它進行打開或保存文件、設(shè)置打印選項、選擇顏色以及選擇字體等的操作。另外,還可以通過調(diào)用Windows幫助引擎來顯示應(yīng)用程序的幫助。
本任務(wù)學(xué)習(xí)公共對話框的使用方法。學(xué)習(xí)目標(biāo)
(1)會添加公共對話框控件。
(2)會使用公共對話框控件進行打開或保存文件、選擇顏色和字體、打印等操作。任務(wù)實施
1.添加公共對話框控件
公共對話框控件屬于VB專業(yè)版和企業(yè)版所特有的ActiveX控件,位于文件“C:\Windows\System\Comdlg32.ocx”中,名稱為“MicrosoftCommonDialogControl6.0”。
(1)右鍵單擊控件工具箱,在彈出的菜單中選擇“部件”命令,打開“部件”對話框,如圖8.1所示。圖8.1添加公共對話框控件
(2)在“部件”對話框中,選定所需的文件,按“確定”按鈕即可將公共對話框控件添加到控件工具箱中。
一旦把公共對話框添加到工具箱中,就可以像使用標(biāo)準控件一樣把它添加到窗體中。
在設(shè)計狀態(tài),窗體上顯示公共對話框圖標(biāo),如圖8.2所示。但在程序運行時,窗體上不會顯示公共對話框,直到在程序中用Action屬性或Show方法激活而調(diào)出所需的對話框為止。由于在程序運行時看不見“公共對話框”控件,因此可以將它放置在窗體的任何位置。
公共對話框僅用于應(yīng)用程序與用戶之間的信息交互,是輸入輸出的界面,不能實現(xiàn)打開文件、存儲文件、設(shè)置顏色、設(shè)置字體、打印等操作。如果需要實現(xiàn)這些功能,還要靠編程來實現(xiàn)。圖8.2在窗體上添加公共對話框控件
2.了解公共對話框控件的六種方法
在程序運行時,公共對話框可以顯示一個對話框或是執(zhí)行幫助的引擎,所顯示的對話框由控件的“方法”決定。共有六種方法來指定相應(yīng)的對話框,參見表8-1。每種對話框都有自己特殊的屬性,這些屬性既可以在屬性窗口中設(shè)置,也可以在代碼中設(shè)置,還可以在“屬性頁”對話框中設(shè)置。“屬性頁”對話框如圖8.3所示。圖8.3“屬性頁”對話框
3.使用“打開”對話框
打開文件是Windows應(yīng)用程序(例如Office)中常用的操作?!按蜷_”對話框可以用來選擇文件所在的驅(qū)動器、文件夾以及文件名、文件擴展名,如圖8.4所示。圖8.4“打開”對話框運行時選定文件并關(guān)閉對話框后,可用FileName屬性得到文件所在的驅(qū)動器、文件夾以及文件名、文件擴展名。
使用“打開”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設(shè)置屬性,其中各屬性的描述參見表8-2。
(3)使用公共對話框控件的ShowOpen方法來顯示“打開”對話框:控件名.ShowOpen
【課堂演練】
【實例8-1】編寫應(yīng)用程序:如圖8.5所示,選擇“編輯圖片”命令,能彈出“打開”對話框,當(dāng)選定一個.bmp位圖文件,并單擊“打開”按鈕后,能調(diào)用Windows的畫圖程序編輯該圖片。圖8.5打開對話框應(yīng)用示例
【實現(xiàn)步驟】
(1)建立用戶界面。如圖8.6所示,在窗體上建立一個命令為CommonDialog1的公共對話框,再建立一個命令按鈕Command1。
(2)設(shè)置對象屬性。打開“屬性頁”對話框,在“打開”選項卡中設(shè)置屬性,如圖8.7所示。其他對象屬性參見圖8.6。圖8.6建立用戶界面圖8.7在“屬性頁”中設(shè)置對象屬性
(3)編寫事件代碼?!熬庉媹D片”按鈕Command1的Click事件代碼為
PrivateSubCommand1_Click()
CommonDialog1.ShowOpen‘打開對話框
’將畫圖程序的文件名和bmp位圖文件名連接后賦給變量pathname
pathname=“c:\windows\pbrush.exe”+“”+commomdialog1.FileName
retval=Shell(pathname,1)‘執(zhí)行變量pathname中的程序
EndSub
4.使用“另存為”對話框
“另存為”對話框可以用來指定文件所要保存的驅(qū)動器、文件夾以及文件名、文件擴展名,如圖8.8所示。同樣,它并不能提供真正的存儲文件操作,存儲文件的操作需要編程來完成。
對于“另存為”對話框,涉及的屬性基本上與“打開”對話框一樣,另外還有一個DefaultExt屬性,它表示所存文件的缺省擴展名。圖8.8“另存為”對話框使用“另存為”對話框的步驟和屬性設(shè)置與“打開”對話框一樣,使用CommonDialog控件的ShowSave方法來顯示“另存為”對話框,格式為
控件名.ShowSave
5.使用“顏色”對話框
“顏色”對話框用來在調(diào)色盤中選擇顏色或創(chuàng)建自定義顏色,如圖8.9所示。
運行時選定顏色并關(guān)閉對話框后,可用Color屬性得到所選的顏色。使用“顏色”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框的“顏色”選項卡中設(shè)置屬性,如圖8.10所示,其中各屬性的描述如表8-3所示。圖8.9“顏色”對話框
圖8.10“顏色”對話框?qū)傩皂?/p>
(3)使用公共對話框控件的ShowColor方法顯示“顏色”對話框:控件名.ShowColor
6.使用“字體”對話框
“字體”對話框用來設(shè)置并返回所用字體的名字、樣式、大小、效果及顏色,如圖8.11所示。圖8.11“字體”對話框運行時選定設(shè)置并關(guān)閉對話框后,所做的設(shè)置包含在表8-4中。使用“字體”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設(shè)置屬性,其中各屬性的描述見表8-5。注意,必須將Flags屬性設(shè)為下列常數(shù)之一與其他選項
之和:
cdlCFScreenFonts或1(屏幕字體)
cdkCFPrinterFonts或2(打印機字體)
cdlCFBoth或3(即1+2,兩種字體皆有)例如,可設(shè)為259(即256+3,是cdlCFEffects常數(shù)(256)與3之和,在對話框中將出現(xiàn)顏色、效果等選項)。
(3)使用公共對話框控件的ShowFont方法顯示“字體”對
話框:
控件名.ShowFont
【課堂演練】
【實例8-2】字體對話框應(yīng)用示例。在文本框中輸入一段文字,可以通過按鈕來選擇字體大小、字型、顏色等。
【實現(xiàn)步驟】
(1)建立用戶界面。在窗體上增加一個對話框CommonDialog1,一個文本框Text1和兩個命令按鈕Command1、Command2,如圖8.12所示。圖8.12建立用戶界面
(2)設(shè)置對象屬性。各對象屬性如表8-6所示。
(3)編寫事件代碼。“選擇字型”命令按鈕Command1的Click事件代碼為
PrivateSubCommand1_Click()
cdg.ShowFont‘顯示“字體”對話框
Text1.Font.Name=cdg.FontName
Text1.Font.Size=cdg.FontSize
Text1.Font.Bold=cdg.FontBold
Text1.Font.Italic=cdg.FontItalic
Text1.Font.Underline=cdg.FontUnderline
Text1.Font.Strikethrough=cdg.FontStrikethru
Text1.ForeColor=cdg.Color
EndSub
“結(jié)束”命令按鈕Command2的Click事件代碼為
PrivateSubCommand2_Click()
End
EndSub窗體Form1的Load事件代碼為
PrivateSubForm_Load()
cdg.Flags=cdlCFBothOrcdlCFEffects ‘出現(xiàn)屏幕與打印機可用字符,或字型的顏色
EndSub
(4)運行程序,結(jié)果如圖8.13所示。單擊“選擇字型”按鈕,彈出“字體”對話框。在此對話框中設(shè)置好字體、大小、顏色等,單擊“確定”按鈕,所設(shè)置的各項將應(yīng)用于文本框內(nèi)。圖8.13“字體”對話框應(yīng)用示例
7.使用“打印”對話框
“打印”對話框可以用來設(shè)置打印輸出的方法,如打印范圍、打印份數(shù)、打印質(zhì)量等。此外,該對話框中還顯示了當(dāng)前安裝的打印機的信息,并允許用戶重新設(shè)置默認打印機,如圖8.14所示。圖8.14“打印”對話框使用“打印”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設(shè)置屬性,如圖8.15所示。圖8.15“屬性頁”對話框其中“屬性頁”對應(yīng)的屬性見表8-7。
8.使用“Windows幫助”對話框
“公共對話框”控件的另一個用途是使用ShowHelp方法來調(diào)用Windows幫助引擎。調(diào)用步驟如下:
(1)在窗體中增加“公共對話框”控件。
(2)在“屬性頁”對話框的“幫助”選項卡中設(shè)置屬性,如圖8.16所示。圖8.16“屬性頁”對話框的“幫助”選項卡屬性描述如表8-8所示。
(3)使用CommonDialog控件的ShowHelp方法調(diào)用幫助引擎,格式為
控件名.ShowHelp
“Windows幫助”對話框如圖8.17所示。圖8.17“Windows幫助”對話框
【課堂演練】
【實例8-3】圖8.18所示為使用公共對話框控件的綜合
實例。圖8.18使用“公共對話框”控件
【實現(xiàn)步驟】
(1)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性。
進入窗體設(shè)計器,首先增加一個公共對話框Commondialog1、一個框架Frame1和一個命令按鈕數(shù)組Command1(0)~Command1(3)。然后,選定框架Frame1,在其中增加一個文本框Text1。參圖8.18設(shè)置窗體中各控件的屬性。
(2)編寫代碼。
命令按鈕數(shù)組Command()的Click事件代碼如下:
PrivateSubCommand1_Click(IndexAsInteger)
n=Index
SelectCasen
Case0
CommonDialog1.Filter=“所有文件(*.*)|*.*|文本文件(*.TXT)|*.txt”
CommonDialog1.FilterIndex=1
CommonDialog1.ShowOpen
Text1.Text=CommonDialog1.FileName
Frame1.Caption=“從打開對話框返回”
Case1
CommonDialog1.ShowSave
Text1.Text=CommonDialog1.FileName
Frame1.Caption="從另存為對話框返回"
Case2
CommonDialog1.ShowColor
Text1.Text=“從顏色對話框返回”
Text1.ForeColor=CommonDialog1.Color
Frame1.Caption=“從顏色對話框返回”
Case3
CommonDialog1.Flags=3Or256
CommonDialog1.ShowFont
WithText1
.FontName=CommonDialog1.FontName
.FontSize=CommonDialog1.FontSize
.FontStrikethru=CommonDialog1.FontStrikethru
.FontBold=CommonDialog1.FontBold
.FontItalic=CommonDialog1.FontItalic
.FontUnderline=CommonDialog1.FontUnderline
.ForeColor=CommonDialog1.Color
EndWith
Text1.Text=“從字體對話框返回”
Frame1.Caption=“從字體對話框返回”
EndSelect
EndSub任務(wù)8.2菜單設(shè)計
任務(wù)導(dǎo)入
菜單是Windows下應(yīng)用程序的主要元素。當(dāng)應(yīng)用程序較復(fù)雜時,只提供幾個命令按鈕、單選鈕、復(fù)選框等控件供用戶選擇就不夠了,此時就應(yīng)該設(shè)計菜單,以向用戶提供應(yīng)用程序的各項功能。菜單的基本作用有兩個:一是提供人機對話的接口,以便讓用戶選擇應(yīng)用系統(tǒng)的各種功能;二是管理應(yīng)用系統(tǒng),控制各種功能模塊的運行。一個高質(zhì)量的菜單程序,不僅要界面美觀,還要方便用戶使用,并可避免由于誤操作而帶來的嚴重后果。菜單一般分為兩種基本類型:下拉式菜單和彈出式菜單。本任務(wù)學(xué)習(xí)下拉式菜單和彈出式菜單的程序設(shè)計方法。學(xué)習(xí)目標(biāo)
(1)了解下拉式菜單和彈出式菜單各自的特點。
(2)會設(shè)計下拉式菜單。
(3)會設(shè)計彈出式菜單。任務(wù)實施
1.了解菜單的兩種基本類型
在實際應(yīng)用中,菜單可分為兩種基本類型:下拉式菜單和彈出式菜單。
1)下拉式菜單
下拉式菜單是一種典型的窗口式菜單,一般通過單擊窗口菜單欄中的菜單標(biāo)題的方式打開,如在VB窗口中單擊“文件”、“編輯”、“視圖”等菜單項時所顯示的就是下拉菜單,如圖8.19所示。圖8.19下拉式菜單在下拉式菜單系統(tǒng)中,一般有一個主菜單,即菜單欄(位于窗口標(biāo)題欄的下方),其中包括一個或多個選擇項,稱為菜單標(biāo)題或主菜單項。當(dāng)單擊一個菜單標(biāo)題時,一個包含若干個菜單項的列表(即菜單)被打開,這些菜單項稱為菜單命令或子菜單項。根據(jù)功能的不同,菜單命令多以分隔條隔開。有的菜單命令的右端顯示有向右的三角符號,當(dāng)鼠標(biāo)指針指向該菜單命令時,會出現(xiàn)下級子菜單,VB中最多可出現(xiàn)六級子菜單;有的菜單命令的左邊有“√”符號,表示該菜單命令正在起作用。
2)彈出式菜單
彈出式菜單也稱右鍵菜單或快捷菜單,是當(dāng)用戶在一個對象上單擊鼠標(biāo)右鍵時顯示出來的菜單。它可以在窗口的某個位置顯示,因此,用戶可以利用彈出式菜單更方便快捷地完成操作。在窗體中單擊右鍵時所顯示的菜單就是彈出式菜單,如圖8.20所示。
圖8.20彈出式菜單
2.掌握菜單編輯器的進入方法
在VB中,菜單是一個控件,與其他控件一樣,它具有定義其外觀與行為的屬性。在設(shè)計或運行時可以設(shè)置Caption屬性、Enabled屬性、Visible屬性、Checked屬性以及其他屬性。菜單控件只包含一個事件,即Click事件,當(dāng)用鼠標(biāo)或鍵盤選中該菜單控件時,將調(diào)用該事件。與其他控件不同的是,菜單控件不在VB的工具箱中,需要在VB的菜單編輯器中進行菜單的設(shè)計。
菜單通過菜單編輯器,即菜單設(shè)計窗口建立??梢酝ㄟ^下面四種方法進入菜單編輯器:
(1)單擊“工具”菜單中的“菜單編輯器”命令。
(2)直接按下快捷鍵Ctrl?+?E。
(3)單擊工具欄中的“菜單編輯器”按鈕。
(4)在要建立菜單的窗體上單擊鼠標(biāo)右鍵,在快捷菜單中選擇“菜單編輯器”命令。
(4)在要建立菜單的窗體上單擊鼠標(biāo)右鍵,在快捷菜單中選擇“菜單編輯器”命令。
3.了解菜單編輯器的組成
進入菜單編輯器后,打開菜單編輯器窗口,如圖8.21所示。菜單編輯器窗口分為三個部分:菜單屬性設(shè)置區(qū)、編輯區(qū)和菜單項顯示區(qū)。圖8.21菜單編輯器
1)菜單屬性設(shè)置區(qū)
菜單屬性設(shè)置區(qū)用于輸入或修改菜單項,并設(shè)置菜單項的各個屬性。表8-9列出了其中的主要屬性。
2)編輯區(qū)
編輯區(qū)共有7個按鈕,用來對輸入的菜單項進行簡單的編輯,如表8-10所示。
3)菜單項顯示區(qū)
菜單項顯示區(qū)位于菜單編輯器的下部,輸入的菜單項在這里顯示出來,并通過內(nèi)縮符號表明菜單項的層次。
【說明】
(1)菜單項包括四個方面的內(nèi)容:菜單名、菜單命令、分隔線和子菜單。
(2)在輸入菜單項時,如果在字母前加上符號“&”,則顯示菜單時在該字母下面加一條下劃線,可以通過Alt鍵與“帶
下劃線的字母”鍵組合成快捷鍵來打開菜單或執(zhí)行相應(yīng)的菜單命令。
(3)內(nèi)縮符號由四個點組成,它表明菜單項所在的層次。一個內(nèi)縮符號(四個點)表示一層,兩個內(nèi)縮符號(八個點)表示兩層……最多可有六層。如果一個菜單項前面沒有內(nèi)縮符號,則該菜單為菜單名,即菜單的第一層。
(4)如果在“標(biāo)題”欄內(nèi)只輸入一個“-”符號,則表示產(chǎn)生一個分隔線。
(5)只有菜單名而沒有菜單項的菜單稱為“頂層菜單”,在輸入這樣的菜單項時,通常在后面加上一個感嘆號“!”。
(6)除分隔線外,所有的菜單項都可以接受Click事件。
4.設(shè)計下拉菜單
利用菜單編輯器可以在窗體中建立下拉式菜單,設(shè)計步驟如下:
(1)新建一個窗體,并設(shè)計用戶界面。
(2)利用菜單編輯器設(shè)計各菜單項。
(3)利用代碼編輯窗口編寫每一菜單項的事件過程。
(4)運行并調(diào)試各菜單命令。
【課堂演練】
【實例8-4】在窗體上建立如圖8.22所示的文件下拉菜單。
【實現(xiàn)步驟】
(1)執(zhí)行“工具”菜單中的“菜單編輯器”命令,打開“菜單編輯器”窗口。
(2)在標(biāo)題欄中輸入“文件(&F)”,在菜單項顯示區(qū)中出現(xiàn)同樣的標(biāo)題名稱。按Tab鍵(或用鼠標(biāo))把輸入光標(biāo)移到“名稱”欄,在名稱欄中輸入“file”,此時菜單項顯示區(qū)中沒有變化。圖8.22建立下拉菜單
(3)單擊編輯區(qū)中的“下一個”按鈕,菜單項顯示區(qū)中的條形光標(biāo)下移,同時資料區(qū)的“標(biāo)題”欄及“名稱”欄被清空,光標(biāo)回到“標(biāo)題”欄。
(4)在標(biāo)題欄中輸入“新建”,該信息同時在菜單項顯示區(qū)中顯示出來,用Tab鍵或鼠標(biāo)把光標(biāo)移到“名稱”欄,輸入“new”,單擊編輯區(qū)的右箭頭,菜單顯示區(qū)中的“新建”右移,同時其左側(cè)出現(xiàn)一個內(nèi)縮符號“…”,表明“新建”是“文件”的下一級菜單。
(5)依次輸入菜單中的各項,如果需要指定快捷鍵,可以單擊“快捷鍵”欄右端的箭頭,從中選出。例如為“打開”菜單項選中“Ctrl+O”作為其快捷鍵。
(6)設(shè)計完成后的窗口如圖8.23所示,單擊“確定”按鈕,完成菜單的建立工作。圖8.23在菜單編輯器窗口中建立下拉菜單
【實例8-5】利用下拉式菜單為標(biāo)簽中的文本內(nèi)容設(shè)置不同的字體和風(fēng)格,如圖8.24所示。圖8.24利用菜單控制標(biāo)題板
【實現(xiàn)步驟】
(1)建立用戶界面,并設(shè)置對象屬性,如圖8.25所示。圖8.25設(shè)計用戶界面及設(shè)置對象屬性菜單編輯器中各菜單項的設(shè)置如表8-11所示。
(2)編寫菜單項代碼。“文本字體”中四個菜單選項的Click事件代碼為
PrivateSubsong_Click()
Label1.FontName=“宋體”
EndSub
PrivateSubli_Click()
Label1.FontName=“隸書”
EndSub
PrivateSubkai_Click()
Label1.FontName=“楷體_GB2312”
EndSub
PrivateSubhei_Click()
Label1.FontName=“黑體”
EndSub“文本風(fēng)格”中三個菜單選項的Click事件代碼為
PrivateSubbld_Click()
bld.Checked=Notbld.Checked
Label1.FontBold=bld.Checked
EndSub
PrivateSubItl_Click()
Itl.Checked=NotItl.Checked
Label1.FontItalic=Itl.Checked
EndSub
PrivateSubUndrln_Click()
Undrln.Checked=NotUndrln.Checked
Label1.FontUnderline=Undrln.Checked
EndSub
(3)運行程序,結(jié)果如圖8.24所示。
5.了解菜單控件數(shù)組
由于VB將菜單項視為控件,因此就能運用控件數(shù)組的概念了。菜單控件數(shù)組的作用主要有兩個:一是動態(tài)地增、刪菜單項;二是簡化編程,用一段代碼處理多個菜單項。
【課堂演練】
【實例8-6】利用下拉式菜單設(shè)計簡易的文本編輯器,使其具有創(chuàng)建、編輯、保存文本文件的功能,如圖8.26所示。圖8.26使用下拉菜單的簡單編輯器
【實現(xiàn)步驟】
(1)建立用戶界面,并設(shè)置對象屬性。在窗體上增加一個公共對話框控件、一個文本框控件,并設(shè)置對象屬性,參見圖8.27所示。圖8.27建立用戶界面及設(shè)置對象屬性菜單編輯器中各菜單項的設(shè)置如表8-12所示。
(2)編寫菜單項代碼。菜單控件數(shù)組File的Click事件代
碼為
PrivateSubFile_Click(IndexAsInteger)
n=Indexs
SelectCasen
Case0‘新建
Text1.Text=“”
Form1.Caption="未命名"
Case1'打開
CommonDialog1.ShowOpen'顯示“打開”公共對話框
fname=CommonDialog1.FileName
Iffname<>""Then
Text1.Text=""
OpenfnameForInputAs#1
b=""
DoUntilEOF(1)
LineInput#1,nextline
b=b&nextline&Chr(13)&Chr(10)
Loop
Close#1
Text1.Text=b
EndIf
Form1.Caption=fname
Case2'保存
IfForm1.Caption="未命名"OrForm1.Caption=""Then
CommonDialog1.ShowSave'顯示“另存為”公共對話框
fname=CommonDialog1.FileName
Else
fname=Form1.Caption
EndIf
Iffname<>""Then
OpenfnameForOutputAs#1
Print#1,Text1.Text
Close#1
EndIf
Case3'另存
CommonDialog1.ShowSave'顯示“另存為”公共對話框
fname=CommonDialog1.FileName
Iffname<>""Then
OpenfnameForOutputAs#1
Print#1,Text1.Text
Close#1
EndIf
Case4 ‘關(guān)閉
Text1.Text=“”
UnloadMe
EndSelect
Text1.SetFocus
EndSub
(3)編寫“編輯”菜單中的菜單控件數(shù)組Edi的Click事件代碼。
在編寫過程中,需要用到兩個與剪貼板有關(guān)的方法:SetText方法和GetText方法。其中,SetText方法是將指定的文本放入系統(tǒng)剪貼板中:
Clipboard.SetTextText1.SelText
剪貼板對象的GetText方法可以作為函數(shù)使用,它返回系統(tǒng)剪貼板當(dāng)前的內(nèi)容:
Text1.SelText=Clipboard.GetText()
其中,Clipboard是VB提供的剪貼板對象。菜單控件數(shù)組Edi的Click事件代碼為
PrivateSubedi_Click(IndexAsInteger)
i=Index
SelectCasei
Case0 ‘剪切
Clipboard.SetTextText1.SelText
Text1.SelText=“”
Case1 ’復(fù)制
Clipboard.SetTextText1.SelText
Case2 ‘粘貼
Text1.SelText=Clipboard.GetText()
Case3 ’刪除
Text1.SelText=“”
EndSelect
EndSub
(4)運行程序,結(jié)果如圖8.26所示。
6.了解菜單項的可用與不可用
VB設(shè)計的菜單可以根據(jù)程序的運行狀態(tài)動態(tài)地進行調(diào)整。當(dāng)菜單項所指示的操作不適合當(dāng)前環(huán)境時,可以暫時將其關(guān)閉,不讓用戶選擇該菜單項,也可以把它隱藏起來,就像根本沒有這個菜單項一樣,等到條件成熟時,再重新顯示被隱藏的菜單項。
【課堂演練】
【實例8-7】改編【實例8-6】的程序,使得當(dāng)文本中沒有被選中的內(nèi)容時,剪切、復(fù)制和刪除等功能被關(guān)閉(菜單項呈灰色)。一旦選中某些文本后,剪切、復(fù)制和刪除等功能就可以被使用,如圖8.28所示。圖8.28菜單項的可用與不可用
【實現(xiàn)步驟】
只需在【實例8-6】的基礎(chǔ)上增加“編輯”菜單項Edit的Click事件代碼:
PrivateSubEdit_Click()
edi(0).Enabled=IIf(Text1.SelLength=0,False,True)
edi(1).Enabled=IIf(Text1.SelLength=0,False,True)
edi(3).Enabled=IIf(Text1.SelLength=0,False,True)
EndSub
【實例8-8】在【實例8-6】的基礎(chǔ)上改變程序,隱藏剪切、復(fù)制和刪除菜單項。
【實現(xiàn)步驟】
(1)隱藏菜單項的辦法也是很簡單的。在【實例8-6】中,編寫文本框Text1的事件代碼。
鍵抬起(KeyUp)事件代碼為
PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
edi(0).Visible=IIf(Text1.SelLength=0,False,True)
edi(1).Visible=IIf(Text1.SelLength=0,False,True)
edi(3).Visible=IIf(Text1.SelLength=0,False,True)
EndSub鼠標(biāo)鍵抬起(MouseUp)事件代碼為
PrivateSubText1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
edi(0).Visible=IIf(Text1.SelLength=0,False,True)
edi(1).Visible=IIf(Text1.SelLength=0,False,True)
edi(3).Visible=IIf(Text1.SelLength=0,False,True)
EndSub(2)運行程序,結(jié)果如圖8.29所示。圖8.29隱藏和重現(xiàn)菜單項
7.設(shè)計彈出式菜單
設(shè)計彈出式菜單的步驟可以分為兩步:
(1)使用菜單編輯器建立菜單,此步驟與前面介紹的建立下拉式菜單的方法一樣,只是必須把主菜單的“可見”欄(Visible屬性)設(shè)置為False,其子菜單項的Visible屬性不要設(shè)置為False。
(2)利用窗體的PopupMenu方法顯示彈出式菜單。
1)修改Visible屬性
在菜單編輯器窗口中,選擇主菜單項“字體”,如圖8.30所示,單擊取消“可見”復(fù)選項前面的“√”標(biāo)記(默認狀態(tài)下該項為選中狀態(tài))。圖8.30在菜單編輯器中取消“可見”項以修改Visible屬性
2)?PopupMenu方法
不管是在窗口頂部菜單條上顯示的菜單,還是隱藏的菜單,都可以用PopupMenu方法把它們作為快捷菜單在程序運行期間顯示出來,其語法格式為
[〈窗體名〉.]PopupMenu〈菜單名〉[,Flags[,x[,y[,Boldcommand]]]]
【說明】
(1)若省略〈窗體名〉,將打開當(dāng)前窗體的菜單。
(2)〈菜單名〉是指通過菜單編輯器設(shè)計的菜單(至少有一個子菜單項)的名稱(Name)。
(3)?Flags參數(shù)為一些常數(shù),包含位置和行為兩個指定值,見表8-13和表8-14。這兩個指定值可以相加或以O(shè)r相連。
(4)?Boldcommand參數(shù)可以指定在顯示的彈出式菜單中想以粗體出現(xiàn)的菜單項的名稱。在彈出式菜單中只能有一個菜單項被加粗。
(5)為創(chuàng)建一個不顯示在菜單欄里的菜單,可在設(shè)計時使頂級菜單項目為不可見(保證在菜單編輯器里的“可見”復(fù)選項沒有被選上)。當(dāng)VB顯示一個彈出式菜單時,指定的頂級菜單的Visible屬性會被忽略。
【課堂演練】
【實例8-9】在【實例8-6】中實現(xiàn)彈出式菜單,如圖8.31所示。圖8.31自定義的彈出式菜單
【實現(xiàn)步驟】
(1)在菜單編輯器中將“文件”菜單的“可見”欄中的對號取消,如圖8.32所示。圖8.32將菜單項的可見屬性Visible設(shè)為False
(2)增加窗體的MouseDown事件代碼:
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=2Then
PopupMenuFiles,6
EndIf
EndSub
(3)運行程序。右鍵單擊窗體,彈出快捷菜單,如圖8.31所示。
4)文本框中的默認彈出式菜單
在VB的文本框中,即使不編程也可以得到一個彈出式菜單。例如,在文本編輯器中,單擊鼠標(biāo)右鍵即可得到如圖8.33所示的彈出式菜單。圖8.33VB文本框中不用編程的彈出式菜單
任務(wù)8.3工?具?欄?設(shè)?計
任務(wù)導(dǎo)入
工具欄為用戶提供了對于應(yīng)用程序中最常用的菜單命令的快速訪問,增強了應(yīng)用程序菜單系統(tǒng)的可操作性。
工具欄的制作有兩種方法:一是使用命令按鈕和圖片框來手工制作;二是通過使用ToolBar控件和ImageList控件來制作。本任務(wù)學(xué)習(xí)使用這兩種方法制作工具欄的方法。學(xué)習(xí)目標(biāo)
(1)會用命令按鈕和圖片框手工制作工具欄。
(2)會使用ToolBar控件和ImageList控件制作工具欄。任務(wù)實施
1.手工方式設(shè)計工具欄
手工方式設(shè)計工具欄,就是設(shè)計一個圖片框,在該圖片框中放置一些工具按鈕。手工制作工具欄的一般步驟如下:
(1)在窗體上添加一個圖片框,將該圖片框作為工具按鈕的容器(工具欄)。
(2)設(shè)置圖片框的Align屬性,以便控制圖片框在窗體中的位置。當(dāng)改變窗體的大小時,圖片框(Align的屬性值非0)會自動地改變大小以適應(yīng)窗體的寬度或高度。
(3)選定圖片框,在圖片框中添加需在工具欄中顯示的控件。通常使用的控件有:命令按鈕、圖形方式的單選鈕和復(fù)選框、下拉列表框等。
(4)設(shè)置控件屬性。通常在工具按鈕上通過不同的圖形來表示對應(yīng)的功能,還可以設(shè)置按鈕的ToolTipText屬性,以為工具按鈕添加工具提示。
(5)編寫代碼。由于工具按鈕通常用于提供對其他(菜單)命令的快捷訪問,因此一般都是在其Click事件代碼中調(diào)用對應(yīng)的菜單命令的。
【課堂演練】
【例8-10】在【實例8-6】的文本編輯器中增加一個自定義的工具欄,如圖8.35所示。圖8.35帶有工具欄的文本編輯器
【實現(xiàn)步驟】
在【實例8-6】的基礎(chǔ)上作如下修改:
(1)修改應(yīng)用程序用戶界面。在窗體上增加一個圖片框Picture1,然后在圖片框中增加一個命令按鈕數(shù)組Command1(0)~Command1(2)。
(2)設(shè)置新增對象屬性,如表8-15所示。建立用戶界面及設(shè)置對象屬性后的界面如圖8.36所示。圖8.36建立用戶界面
(3)修改及編寫程序代碼。修改窗體的事件代碼:
PrivateSubForm_Resize()
WithText1
.Left=0
.Top=Picture1.Height
.Height=Form1.ScaleHeight–Picture1.Height
.Width=Form1.ScaleWidth
EndWith
EndSub編寫命令按鈕數(shù)組Command1的Click事件代碼:
PrivateSubCommand1_Click(IndexAsInteger)
File_Click(Index)
EndSub
2.添加工具欄控件
使用工具欄(Toolbar)控件可以使工具欄的設(shè)計更加標(biāo)準化。工具欄控件是VB專業(yè)版和企業(yè)版所特有的ActiveX控件,可以將其添加到工具箱中,以便在工程中使用。
添加工具欄控件的方法為:
(1)選擇“工程”菜單中的“部件”命令,打開“部件”對話框。
(2)在“部件”對話框中,選中“MicrosoftWindowsCommonControls6.0”項,單擊“確定”按鈕。
這時,已在工具箱中增加了一組控件,如圖8.37所示。其中,用來創(chuàng)建工具欄的控件是工具欄(Toolbar)控件與圖像列表(ImageList)控件。圖8.37添加到工具箱中的工具欄控件與圖像列表控件
3.了解工具欄(Toolbar)控件的使用方法
工具欄控件的使用方法為:
(1)雙擊工具欄控件按鈕,它將被自動添加到窗體中,并出現(xiàn)在窗體的頂部;也可單擊選中工具欄控件后,在窗體中畫出控件。設(shè)置圖片框的Align屬性,以控制工具欄在窗體中的位置。
(2)右擊工具欄控件按鈕,在快捷菜單中選擇“屬性”命令,打開“屬性頁”對話框。
(3)選擇“按鈕”選項卡,如圖8.38所示。圖8.38“屬性頁”中的“按鈕”選項卡其中,各項功能說明如下:
●插入與刪除按鈕:在Button(按鈕)集合中添加或刪除元素。通過Button集合可以訪問工具欄中的各個按鈕。
●索引與關(guān)鍵字:工具欄中的按鈕可通過Button集合進行訪問,集合中的每個按鈕都有惟一的標(biāo)識,索引(Index屬性)和關(guān)鍵字(Key屬性)就是這個標(biāo)識。索引為整型,關(guān)鍵字為字符串型,訪問按鈕時可以引用二者之一?!駱?biāo)題與描述:標(biāo)題(Caption屬性)是顯示在按鈕上的文字;描述是按鈕的說明信息。
●值(Value屬性):決定按鈕的狀態(tài),0-tbrUnpressed為彈起狀態(tài),1-tbrPressed為按下狀態(tài)。
●樣式(Style屬性):決定按鈕的行為特點,并且將影響
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國半導(dǎo)體設(shè)備用濾波器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球連供無線雙面打印一體機行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國產(chǎn)權(quán)制作軟件行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年度農(nóng)業(yè)科技創(chuàng)新成果轉(zhuǎn)化合同4篇
- 教育資源的安全使用家庭教育之重點
- 數(shù)字化校園信息技術(shù)的力量
- 教育技術(shù)的前沿研究與應(yīng)用報告
- 教育行業(yè)中的創(chuàng)新思維應(yīng)用案例
- 2022屆山東省聊城市高三高考一??荚囌Z文試卷 附答案
- 二零二五年度高端裝備采購與高效運輸管理合同范本3篇
- (二模)遵義市2025屆高三年級第二次適應(yīng)性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書及公司股權(quán)代持及回購協(xié)議
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 2025年計算機二級WPS考試題目
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費管理工作指引》知識培訓(xùn)
- 初一到初三英語單詞表2182個帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 年度重點工作計劃
- 《經(jīng)濟思想史》全套教學(xué)課件
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
- 2023年11月英語二級筆譯真題及答案(筆譯實務(wù))
評論
0/150
提交評論