版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
項目八對話框、菜單與工具欄設計任務8.1對話框設計任務8.2菜單設計任務8.3工具欄設計
任務8.1對?話?框?設?計
任務導入
一些應用程序中常常需要進行打開或保存文件、選擇顏色和字體、打印等操作,這就需要應用程序提供相應的對話框以方便使用。這些對話框作為Windows的資源,在VB中已被做成公共對話框控件。公共對話框(CommonDialog)控件為用戶提供了一組標準的系統(tǒng)對話框,可以使用它進行打開或保存文件、設置打印選項、選擇顏色以及選擇字體等的操作。另外,還可以通過調(diào)用Windows幫助引擎來顯示應用程序的幫助。
本任務學習公共對話框的使用方法。學習目標
(1)會添加公共對話框控件。
(2)會使用公共對話框控件進行打開或保存文件、選擇顏色和字體、打印等操作。任務實施
1.添加公共對話框控件
公共對話框控件屬于VB專業(yè)版和企業(yè)版所特有的ActiveX控件,位于文件“C:\Windows\System\Comdlg32.ocx”中,名稱為“MicrosoftCommonDialogControl6.0”。
(1)右鍵單擊控件工具箱,在彈出的菜單中選擇“部件”命令,打開“部件”對話框,如圖8.1所示。圖8.1添加公共對話框控件
(2)在“部件”對話框中,選定所需的文件,按“確定”按鈕即可將公共對話框控件添加到控件工具箱中。
一旦把公共對話框添加到工具箱中,就可以像使用標準控件一樣把它添加到窗體中。
在設計狀態(tài),窗體上顯示公共對話框圖標,如圖8.2所示。但在程序運行時,窗體上不會顯示公共對話框,直到在程序中用Action屬性或Show方法激活而調(diào)出所需的對話框為止。由于在程序運行時看不見“公共對話框”控件,因此可以將它放置在窗體的任何位置。
公共對話框僅用于應用程序與用戶之間的信息交互,是輸入輸出的界面,不能實現(xiàn)打開文件、存儲文件、設置顏色、設置字體、打印等操作。如果需要實現(xiàn)這些功能,還要靠編程來實現(xiàn)。圖8.2在窗體上添加公共對話框控件
2.了解公共對話框控件的六種方法
在程序運行時,公共對話框可以顯示一個對話框或是執(zhí)行幫助的引擎,所顯示的對話框由控件的“方法”決定。共有六種方法來指定相應的對話框,參見表8-1。每種對話框都有自己特殊的屬性,這些屬性既可以在屬性窗口中設置,也可以在代碼中設置,還可以在“屬性頁”對話框中設置。“屬性頁”對話框如圖8.3所示。圖8.3“屬性頁”對話框
3.使用“打開”對話框
打開文件是Windows應用程序(例如Office)中常用的操作?!按蜷_”對話框可以用來選擇文件所在的驅動器、文件夾以及文件名、文件擴展名,如圖8.4所示。圖8.4“打開”對話框運行時選定文件并關閉對話框后,可用FileName屬性得到文件所在的驅動器、文件夾以及文件名、文件擴展名。
使用“打開”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設置屬性,其中各屬性的描述參見表8-2。
(3)使用公共對話框控件的ShowOpen方法來顯示“打開”對話框:控件名.ShowOpen
【課堂演練】
【實例8-1】編寫應用程序:如圖8.5所示,選擇“編輯圖片”命令,能彈出“打開”對話框,當選定一個.bmp位圖文件,并單擊“打開”按鈕后,能調(diào)用Windows的畫圖程序編輯該圖片。圖8.5打開對話框應用示例
【實現(xiàn)步驟】
(1)建立用戶界面。如圖8.6所示,在窗體上建立一個命令為CommonDialog1的公共對話框,再建立一個命令按鈕Command1。
(2)設置對象屬性。打開“屬性頁”對話框,在“打開”選項卡中設置屬性,如圖8.7所示。其他對象屬性參見圖8.6。圖8.6建立用戶界面圖8.7在“屬性頁”中設置對象屬性
(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.使用“另存為”對話框
“另存為”對話框可以用來指定文件所要保存的驅動器、文件夾以及文件名、文件擴展名,如圖8.8所示。同樣,它并不能提供真正的存儲文件操作,存儲文件的操作需要編程來完成。
對于“另存為”對話框,涉及的屬性基本上與“打開”對話框一樣,另外還有一個DefaultExt屬性,它表示所存文件的缺省擴展名。圖8.8“另存為”對話框使用“另存為”對話框的步驟和屬性設置與“打開”對話框一樣,使用CommonDialog控件的ShowSave方法來顯示“另存為”對話框,格式為
控件名.ShowSave
5.使用“顏色”對話框
“顏色”對話框用來在調(diào)色盤中選擇顏色或創(chuàng)建自定義顏色,如圖8.9所示。
運行時選定顏色并關閉對話框后,可用Color屬性得到所選的顏色。使用“顏色”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框的“顏色”選項卡中設置屬性,如圖8.10所示,其中各屬性的描述如表8-3所示。圖8.9“顏色”對話框
圖8.10“顏色”對話框屬性頁
(3)使用公共對話框控件的ShowColor方法顯示“顏色”對話框:控件名.ShowColor
6.使用“字體”對話框
“字體”對話框用來設置并返回所用字體的名字、樣式、大小、效果及顏色,如圖8.11所示。圖8.11“字體”對話框運行時選定設置并關閉對話框后,所做的設置包含在表8-4中。使用“字體”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設置屬性,其中各屬性的描述見表8-5。注意,必須將Flags屬性設為下列常數(shù)之一與其他選項
之和:
cdlCFScreenFonts或1(屏幕字體)
cdkCFPrinterFonts或2(打印機字體)
cdlCFBoth或3(即1+2,兩種字體皆有)例如,可設為259(即256+3,是cdlCFEffects常數(shù)(256)與3之和,在對話框中將出現(xiàn)顏色、效果等選項)。
(3)使用公共對話框控件的ShowFont方法顯示“字體”對
話框:
控件名.ShowFont
【課堂演練】
【實例8-2】字體對話框應用示例。在文本框中輸入一段文字,可以通過按鈕來選擇字體大小、字型、顏色等。
【實現(xiàn)步驟】
(1)建立用戶界面。在窗體上增加一個對話框CommonDialog1,一個文本框Text1和兩個命令按鈕Command1、Command2,如圖8.12所示。圖8.12建立用戶界面
(2)設置對象屬性。各對象屬性如表8-6所示。
(3)編寫事件代碼?!斑x擇字型”命令按鈕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
“結束”命令按鈕Command2的Click事件代碼為
PrivateSubCommand2_Click()
End
EndSub窗體Form1的Load事件代碼為
PrivateSubForm_Load()
cdg.Flags=cdlCFBothOrcdlCFEffects ‘出現(xiàn)屏幕與打印機可用字符,或字型的顏色
EndSub
(4)運行程序,結果如圖8.13所示。單擊“選擇字型”按鈕,彈出“字體”對話框。在此對話框中設置好字體、大小、顏色等,單擊“確定”按鈕,所設置的各項將應用于文本框內(nèi)。圖8.13“字體”對話框應用示例
7.使用“打印”對話框
“打印”對話框可以用來設置打印輸出的方法,如打印范圍、打印份數(shù)、打印質(zhì)量等。此外,該對話框中還顯示了當前安裝的打印機的信息,并允許用戶重新設置默認打印機,如圖8.14所示。圖8.14“打印”對話框使用“打印”對話框的步驟如下:
(1)在窗體中增加公共對話框控件。
(2)在“屬性頁”對話框中設置屬性,如圖8.15所示。圖8.15“屬性頁”對話框其中“屬性頁”對應的屬性見表8-7。
8.使用“Windows幫助”對話框
“公共對話框”控件的另一個用途是使用ShowHelp方法來調(diào)用Windows幫助引擎。調(diào)用步驟如下:
(1)在窗體中增加“公共對話框”控件。
(2)在“屬性頁”對話框的“幫助”選項卡中設置屬性,如圖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)建立應用程序用戶界面,并設置對象屬性。
進入窗體設計器,首先增加一個公共對話框Commondialog1、一個框架Frame1和一個命令按鈕數(shù)組Command1(0)~Command1(3)。然后,選定框架Frame1,在其中增加一個文本框Text1。參圖8.18設置窗體中各控件的屬性。
(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任務8.2菜單設計
任務導入
菜單是Windows下應用程序的主要元素。當應用程序較復雜時,只提供幾個命令按鈕、單選鈕、復選框等控件供用戶選擇就不夠了,此時就應該設計菜單,以向用戶提供應用程序的各項功能。菜單的基本作用有兩個:一是提供人機對話的接口,以便讓用戶選擇應用系統(tǒng)的各種功能;二是管理應用系統(tǒng),控制各種功能模塊的運行。一個高質(zhì)量的菜單程序,不僅要界面美觀,還要方便用戶使用,并可避免由于誤操作而帶來的嚴重后果。菜單一般分為兩種基本類型:下拉式菜單和彈出式菜單。本任務學習下拉式菜單和彈出式菜單的程序設計方法。學習目標
(1)了解下拉式菜單和彈出式菜單各自的特點。
(2)會設計下拉式菜單。
(3)會設計彈出式菜單。任務實施
1.了解菜單的兩種基本類型
在實際應用中,菜單可分為兩種基本類型:下拉式菜單和彈出式菜單。
1)下拉式菜單
下拉式菜單是一種典型的窗口式菜單,一般通過單擊窗口菜單欄中的菜單標題的方式打開,如在VB窗口中單擊“文件”、“編輯”、“視圖”等菜單項時所顯示的就是下拉菜單,如圖8.19所示。圖8.19下拉式菜單在下拉式菜單系統(tǒng)中,一般有一個主菜單,即菜單欄(位于窗口標題欄的下方),其中包括一個或多個選擇項,稱為菜單標題或主菜單項。當單擊一個菜單標題時,一個包含若干個菜單項的列表(即菜單)被打開,這些菜單項稱為菜單命令或子菜單項。根據(jù)功能的不同,菜單命令多以分隔條隔開。有的菜單命令的右端顯示有向右的三角符號,當鼠標指針指向該菜單命令時,會出現(xiàn)下級子菜單,VB中最多可出現(xiàn)六級子菜單;有的菜單命令的左邊有“√”符號,表示該菜單命令正在起作用。
2)彈出式菜單
彈出式菜單也稱右鍵菜單或快捷菜單,是當用戶在一個對象上單擊鼠標右鍵時顯示出來的菜單。它可以在窗口的某個位置顯示,因此,用戶可以利用彈出式菜單更方便快捷地完成操作。在窗體中單擊右鍵時所顯示的菜單就是彈出式菜單,如圖8.20所示。
圖8.20彈出式菜單
2.掌握菜單編輯器的進入方法
在VB中,菜單是一個控件,與其他控件一樣,它具有定義其外觀與行為的屬性。在設計或運行時可以設置Caption屬性、Enabled屬性、Visible屬性、Checked屬性以及其他屬性。菜單控件只包含一個事件,即Click事件,當用鼠標或鍵盤選中該菜單控件時,將調(diào)用該事件。與其他控件不同的是,菜單控件不在VB的工具箱中,需要在VB的菜單編輯器中進行菜單的設計。
菜單通過菜單編輯器,即菜單設計窗口建立??梢酝ㄟ^下面四種方法進入菜單編輯器:
(1)單擊“工具”菜單中的“菜單編輯器”命令。
(2)直接按下快捷鍵Ctrl?+?E。
(3)單擊工具欄中的“菜單編輯器”按鈕。
(4)在要建立菜單的窗體上單擊鼠標右鍵,在快捷菜單中選擇“菜單編輯器”命令。
(4)在要建立菜單的窗體上單擊鼠標右鍵,在快捷菜單中選擇“菜單編輯器”命令。
3.了解菜單編輯器的組成
進入菜單編輯器后,打開菜單編輯器窗口,如圖8.21所示。菜單編輯器窗口分為三個部分:菜單屬性設置區(qū)、編輯區(qū)和菜單項顯示區(qū)。圖8.21菜單編輯器
1)菜單屬性設置區(qū)
菜單屬性設置區(qū)用于輸入或修改菜單項,并設置菜單項的各個屬性。表8-9列出了其中的主要屬性。
2)編輯區(qū)
編輯區(qū)共有7個按鈕,用來對輸入的菜單項進行簡單的編輯,如表8-10所示。
3)菜單項顯示區(qū)
菜單項顯示區(qū)位于菜單編輯器的下部,輸入的菜單項在這里顯示出來,并通過內(nèi)縮符號表明菜單項的層次。
【說明】
(1)菜單項包括四個方面的內(nèi)容:菜單名、菜單命令、分隔線和子菜單。
(2)在輸入菜單項時,如果在字母前加上符號“&”,則顯示菜單時在該字母下面加一條下劃線,可以通過Alt鍵與“帶
下劃線的字母”鍵組合成快捷鍵來打開菜單或執(zhí)行相應的菜單命令。
(3)內(nèi)縮符號由四個點組成,它表明菜單項所在的層次。一個內(nèi)縮符號(四個點)表示一層,兩個內(nèi)縮符號(八個點)表示兩層……最多可有六層。如果一個菜單項前面沒有內(nèi)縮符號,則該菜單為菜單名,即菜單的第一層。
(4)如果在“標題”欄內(nèi)只輸入一個“-”符號,則表示產(chǎn)生一個分隔線。
(5)只有菜單名而沒有菜單項的菜單稱為“頂層菜單”,在輸入這樣的菜單項時,通常在后面加上一個感嘆號“!”。
(6)除分隔線外,所有的菜單項都可以接受Click事件。
4.設計下拉菜單
利用菜單編輯器可以在窗體中建立下拉式菜單,設計步驟如下:
(1)新建一個窗體,并設計用戶界面。
(2)利用菜單編輯器設計各菜單項。
(3)利用代碼編輯窗口編寫每一菜單項的事件過程。
(4)運行并調(diào)試各菜單命令。
【課堂演練】
【實例8-4】在窗體上建立如圖8.22所示的文件下拉菜單。
【實現(xiàn)步驟】
(1)執(zhí)行“工具”菜單中的“菜單編輯器”命令,打開“菜單編輯器”窗口。
(2)在標題欄中輸入“文件(&F)”,在菜單項顯示區(qū)中出現(xiàn)同樣的標題名稱。按Tab鍵(或用鼠標)把輸入光標移到“名稱”欄,在名稱欄中輸入“file”,此時菜單項顯示區(qū)中沒有變化。圖8.22建立下拉菜單
(3)單擊編輯區(qū)中的“下一個”按鈕,菜單項顯示區(qū)中的條形光標下移,同時資料區(qū)的“標題”欄及“名稱”欄被清空,光標回到“標題”欄。
(4)在標題欄中輸入“新建”,該信息同時在菜單項顯示區(qū)中顯示出來,用Tab鍵或鼠標把光標移到“名稱”欄,輸入“new”,單擊編輯區(qū)的右箭頭,菜單顯示區(qū)中的“新建”右移,同時其左側出現(xiàn)一個內(nèi)縮符號“…”,表明“新建”是“文件”的下一級菜單。
(5)依次輸入菜單中的各項,如果需要指定快捷鍵,可以單擊“快捷鍵”欄右端的箭頭,從中選出。例如為“打開”菜單項選中“Ctrl+O”作為其快捷鍵。
(6)設計完成后的窗口如圖8.23所示,單擊“確定”按鈕,完成菜單的建立工作。圖8.23在菜單編輯器窗口中建立下拉菜單
【實例8-5】利用下拉式菜單為標簽中的文本內(nèi)容設置不同的字體和風格,如圖8.24所示。圖8.24利用菜單控制標題板
【實現(xiàn)步驟】
(1)建立用戶界面,并設置對象屬性,如圖8.25所示。圖8.25設計用戶界面及設置對象屬性菜單編輯器中各菜單項的設置如表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“文本風格”中三個菜單選項的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)運行程序,結果如圖8.24所示。
5.了解菜單控件數(shù)組
由于VB將菜單項視為控件,因此就能運用控件數(shù)組的概念了。菜單控件數(shù)組的作用主要有兩個:一是動態(tài)地增、刪菜單項;二是簡化編程,用一段代碼處理多個菜單項。
【課堂演練】
【實例8-6】利用下拉式菜單設計簡易的文本編輯器,使其具有創(chuàng)建、編輯、保存文本文件的功能,如圖8.26所示。圖8.26使用下拉菜單的簡單編輯器
【實現(xiàn)步驟】
(1)建立用戶界面,并設置對象屬性。在窗體上增加一個公共對話框控件、一個文本框控件,并設置對象屬性,參見圖8.27所示。圖8.27建立用戶界面及設置對象屬性菜單編輯器中各菜單項的設置如表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 ‘關閉
Text1.Text=“”
UnloadMe
EndSelect
Text1.SetFocus
EndSub
(3)編寫“編輯”菜單中的菜單控件數(shù)組Edi的Click事件代碼。
在編寫過程中,需要用到兩個與剪貼板有關的方法:SetText方法和GetText方法。其中,SetText方法是將指定的文本放入系統(tǒng)剪貼板中:
Clipboard.SetTextText1.SelText
剪貼板對象的GetText方法可以作為函數(shù)使用,它返回系統(tǒ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 ’復制
Clipboard.SetTextText1.SelText
Case2 ‘粘貼
Text1.SelText=Clipboard.GetText()
Case3 ’刪除
Text1.SelText=“”
EndSelect
EndSub
(4)運行程序,結果如圖8.26所示。
6.了解菜單項的可用與不可用
VB設計的菜單可以根據(jù)程序的運行狀態(tài)動態(tài)地進行調(diào)整。當菜單項所指示的操作不適合當前環(huán)境時,可以暫時將其關閉,不讓用戶選擇該菜單項,也可以把它隱藏起來,就像根本沒有這個菜單項一樣,等到條件成熟時,再重新顯示被隱藏的菜單項。
【課堂演練】
【實例8-7】改編【實例8-6】的程序,使得當文本中沒有被選中的內(nèi)容時,剪切、復制和刪除等功能被關閉(菜單項呈灰色)。一旦選中某些文本后,剪切、復制和刪除等功能就可以被使用,如圖8.28所示。圖8.28菜單項的可用與不可用
【實現(xiàn)步驟】
只需在【實例8-6】的基礎上增加“編輯”菜單項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】的基礎上改變程序,隱藏剪切、復制和刪除菜單項。
【實現(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鼠標鍵抬起(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)運行程序,結果如圖8.29所示。圖8.29隱藏和重現(xiàn)菜單項
7.設計彈出式菜單
設計彈出式菜單的步驟可以分為兩步:
(1)使用菜單編輯器建立菜單,此步驟與前面介紹的建立下拉式菜單的方法一樣,只是必須把主菜單的“可見”欄(Visible屬性)設置為False,其子菜單項的Visible屬性不要設置為False。
(2)利用窗體的PopupMenu方法顯示彈出式菜單。
1)修改Visible屬性
在菜單編輯器窗口中,選擇主菜單項“字體”,如圖8.30所示,單擊取消“可見”復選項前面的“√”標記(默認狀態(tài)下該項為選中狀態(tài))。圖8.30在菜單編輯器中取消“可見”項以修改Visible屬性
2)?PopupMenu方法
不管是在窗口頂部菜單條上顯示的菜單,還是隱藏的菜單,都可以用PopupMenu方法把它們作為快捷菜單在程序運行期間顯示出來,其語法格式為
[〈窗體名〉.]PopupMenu〈菜單名〉[,Flags[,x[,y[,Boldcommand]]]]
【說明】
(1)若省略〈窗體名〉,將打開當前窗體的菜單。
(2)〈菜單名〉是指通過菜單編輯器設計的菜單(至少有一個子菜單項)的名稱(Name)。
(3)?Flags參數(shù)為一些常數(shù),包含位置和行為兩個指定值,見表8-13和表8-14。這兩個指定值可以相加或以Or相連。
(4)?Boldcommand參數(shù)可以指定在顯示的彈出式菜單中想以粗體出現(xiàn)的菜單項的名稱。在彈出式菜單中只能有一個菜單項被加粗。
(5)為創(chuàng)建一個不顯示在菜單欄里的菜單,可在設計時使頂級菜單項目為不可見(保證在菜單編輯器里的“可見”復選項沒有被選上)。當VB顯示一個彈出式菜單時,指定的頂級菜單的Visible屬性會被忽略。
【課堂演練】
【實例8-9】在【實例8-6】中實現(xiàn)彈出式菜單,如圖8.31所示。圖8.31自定義的彈出式菜單
【實現(xiàn)步驟】
(1)在菜單編輯器中將“文件”菜單的“可見”欄中的對號取消,如圖8.32所示。圖8.32將菜單項的可見屬性Visible設為False
(2)增加窗體的MouseDown事件代碼:
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=2Then
PopupMenuFiles,6
EndIf
EndSub
(3)運行程序。右鍵單擊窗體,彈出快捷菜單,如圖8.31所示。
4)文本框中的默認彈出式菜單
在VB的文本框中,即使不編程也可以得到一個彈出式菜單。例如,在文本編輯器中,單擊鼠標右鍵即可得到如圖8.33所示的彈出式菜單。圖8.33VB文本框中不用編程的彈出式菜單
任務8.3工?具?欄?設?計
任務導入
工具欄為用戶提供了對于應用程序中最常用的菜單命令的快速訪問,增強了應用程序菜單系統(tǒng)的可操作性。
工具欄的制作有兩種方法:一是使用命令按鈕和圖片框來手工制作;二是通過使用ToolBar控件和ImageList控件來制作。本任務學習使用這兩種方法制作工具欄的方法。學習目標
(1)會用命令按鈕和圖片框手工制作工具欄。
(2)會使用ToolBar控件和ImageList控件制作工具欄。任務實施
1.手工方式設計工具欄
手工方式設計工具欄,就是設計一個圖片框,在該圖片框中放置一些工具按鈕。手工制作工具欄的一般步驟如下:
(1)在窗體上添加一個圖片框,將該圖片框作為工具按鈕的容器(工具欄)。
(2)設置圖片框的Align屬性,以便控制圖片框在窗體中的位置。當改變窗體的大小時,圖片框(Align的屬性值非0)會自動地改變大小以適應窗體的寬度或高度。
(3)選定圖片框,在圖片框中添加需在工具欄中顯示的控件。通常使用的控件有:命令按鈕、圖形方式的單選鈕和復選框、下拉列表框等。
(4)設置控件屬性。通常在工具按鈕上通過不同的圖形來表示對應的功能,還可以設置按鈕的ToolTipText屬性,以為工具按鈕添加工具提示。
(5)編寫代碼。由于工具按鈕通常用于提供對其他(菜單)命令的快捷訪問,因此一般都是在其Click事件代碼中調(diào)用對應的菜單命令的。
【課堂演練】
【例8-10】在【實例8-6】的文本編輯器中增加一個自定義的工具欄,如圖8.35所示。圖8.35帶有工具欄的文本編輯器
【實現(xiàn)步驟】
在【實例8-6】的基礎上作如下修改:
(1)修改應用程序用戶界面。在窗體上增加一個圖片框Picture1,然后在圖片框中增加一個命令按鈕數(shù)組Command1(0)~Command1(2)。
(2)設置新增對象屬性,如表8-15所示。建立用戶界面及設置對象屬性后的界面如圖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)控件可以使工具欄的設計更加標準化。工具欄控件是VB專業(yè)版和企業(yè)版所特有的ActiveX控件,可以將其添加到工具箱中,以便在工程中使用。
添加工具欄控件的方法為:
(1)選擇“工程”菜單中的“部件”命令,打開“部件”對話框。
(2)在“部件”對話框中,選中“MicrosoftWindowsCommonControls6.0”項,單擊“確定”按鈕。
這時,已在工具箱中增加了一組控件,如圖8.37所示。其中,用來創(chuàng)建工具欄的控件是工具欄(Toolbar)控件與圖像列表(ImageList)控件。圖8.37添加到工具箱中的工具欄控件與圖像列表控件
3.了解工具欄(Toolbar)控件的使用方法
工具欄控件的使用方法為:
(1)雙擊工具欄控件按鈕,它將被自動添加到窗體中,并出現(xiàn)在窗體的頂部;也可單擊選中工具欄控件后,在窗體中畫出控件。設置圖片框的Align屬性,以控制工具欄在窗體中的位置。
(2)右擊工具欄控件按鈕,在快捷菜單中選擇“屬性”命令,打開“屬性頁”對話框。
(3)選擇“按鈕”選項卡,如圖8.38所示。圖8.38“屬性頁”中的“按鈕”選項卡其中,各項功能說明如下:
●插入與刪除按鈕:在Button(按鈕)集合中添加或刪除元素。通過Button集合可以訪問工具欄中的各個按鈕。
●索引與關鍵字:工具欄中的按鈕可通過Button集合進行訪問,集合中的每個按鈕都有惟一的標識,索引(Index屬性)和關鍵字(Key屬性)就是這個標識。索引為整型,關鍵字為字符串型,訪問按鈕時可以引用二者之一?!駱祟}與描述:標題(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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度網(wǎng)絡安全工程師聘用合同范本3篇
- 2024年土地租賃居間代理合同43篇
- 2024年度版權轉讓合同權利與義務規(guī)定
- 2024年版工程詳細設計合作合同模板版B版
- 2024年攝影師工作環(huán)境及安全聘用合同規(guī)范3篇
- 2024事業(yè)單位勞動合同制工人加班與休息時間合同3篇
- 東城區(qū)食品運輸合同范例
- 皮包代工合同范例
- 合同范例委托
- 職場公文寫作合同范例
- 2024年公司理論學習中心組學習情況總結
- 2024年安徽淮南高新區(qū)管委會招聘工作人員12人歷年管理單位遴選500模擬題附帶答案詳解
- 期末檢測卷(一)2024-2025學年人教PEP版英語四年級上冊(含答案含聽力原文無聽力音頻)
- 企業(yè)發(fā)展未來5年規(guī)劃
- 第六單元 除法(單元測試)(含答案)-2024-2025學年四年級上冊數(shù)學北師大版
- 2024年統(tǒng)編版七年級語文上冊期末測試卷(附答案)
- 2024年消防月全員消防安全知識培訓
- 外研版(2024新版)七年級上冊英語期末(Units 1~6)學業(yè)質(zhì)量測試卷(含答案)
- 2024中國南水北調(diào)集團水網(wǎng)智慧科技有限公司招聘筆試參考題庫含答案解析
- EPC項目投標人承包人工程經(jīng)濟的合理性分析、評價
- 勞動技能實操指導(勞動教育)學習通課后章節(jié)答案期末考試題庫2023年
評論
0/150
提交評論