VB教程 用戶(hù)界面設(shè)計(jì)-文檔資料_第1頁(yè)
VB教程 用戶(hù)界面設(shè)計(jì)-文檔資料_第2頁(yè)
VB教程 用戶(hù)界面設(shè)計(jì)-文檔資料_第3頁(yè)
VB教程 用戶(hù)界面設(shè)計(jì)-文檔資料_第4頁(yè)
VB教程 用戶(hù)界面設(shè)計(jì)-文檔資料_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第10章 用戶(hù)界面設(shè)計(jì)1 菜單設(shè)計(jì)菜單設(shè)計(jì) 通用對(duì)話(huà)框設(shè)計(jì)通用對(duì)話(huà)框設(shè)計(jì) 工具欄設(shè)計(jì)工具欄設(shè)計(jì) 鍵盤(pán)與鼠標(biāo)事件鍵盤(pán)與鼠標(biāo)事件 多重窗體與多模塊程序設(shè)計(jì)多重窗體與多模塊程序設(shè)計(jì)本章要求:本章要求:第第1010章章 用戶(hù)界面設(shè)計(jì)用戶(hù)界面設(shè)計(jì)本章重點(diǎn):本章重點(diǎn):本章難點(diǎn):本章難點(diǎn): 通用對(duì)話(huà)框的使用、菜單的建立與使用通用對(duì)話(huà)框的使用、菜單的建立與使用鍵盤(pán)與鼠標(biāo)事件鍵盤(pán)與鼠標(biāo)事件通用對(duì)話(huà)框的使用、動(dòng)態(tài)菜單、多模塊設(shè)計(jì)通用對(duì)話(huà)框的使用、動(dòng)態(tài)菜單、多模塊設(shè)計(jì) 第10章 用戶(hù)界面設(shè)計(jì)210.1 菜單設(shè)計(jì)菜單設(shè)計(jì) Windows環(huán)境下的應(yīng)用程序一般為用戶(hù)提供三種菜單:環(huán)境下的應(yīng)用程序一般為用戶(hù)提供三種菜單:

2、窗體控制菜單窗體控制菜單、下拉菜單與快捷菜單下拉菜單與快捷菜單。 第10章 用戶(hù)界面設(shè)計(jì)3一一. 啟動(dòng)菜單編輯器:?jiǎn)?dòng)菜單編輯器:有三種方法有三種方法: 1 單擊工具欄菜單圖標(biāo)單擊工具欄菜單圖標(biāo) 2 工具工具/菜單編輯器菜單編輯器 (CTRL+E) 3 窗體上快捷菜單窗體上快捷菜單 菜單編輯器菜單編輯器 菜單編輯器操作界面如右菜單編輯器操作界面如右所示。所示。10.1.1菜單編輯器菜單編輯器 第10章 用戶(hù)界面設(shè)計(jì)4菜單編輯器介紹:菜單編輯器介紹:1. 標(biāo)題標(biāo)題(Caption):2. 名稱(chēng)名稱(chēng)(Name):3. 快捷鍵快捷鍵(Shortcut):4. 下一個(gè)下一個(gè)(Next):5. 和和按鈕

3、按鈕6. 插入插入(Insert)按鈕:按鈕:7. 刪除刪除(Delete)按鈕:按鈕:8 和和按鈕:按鈕:10. 復(fù)選復(fù)選(Checked)檢查框:檢查框:10. 有效有效(Enabled)檢查框:檢查框:11. 顯示窗口列表顯示窗口列表(Window List)檢查框:檢查框: 第10章 用戶(hù)界面設(shè)計(jì)5 菜單的主要屬性菜單的主要屬性1. 標(biāo)題標(biāo)題(Caption):在窗口上顯示,例如:輸入:在窗口上顯示,例如:輸入&File,顯示為:,顯示為: File,熱鍵:,熱鍵:Alt+F 2. 名稱(chēng)名稱(chēng)(Name): 菜單項(xiàng)的名稱(chēng),分界符也應(yīng)有名稱(chēng)。菜單項(xiàng)的名稱(chēng),分界符也應(yīng)有名稱(chēng)。3. 快

4、捷鍵快捷鍵(Shortcut):下拉列表框下拉列表框4 下一個(gè)下一個(gè)(Next): 設(shè)置下一個(gè)菜單項(xiàng)。設(shè)置下一個(gè)菜單項(xiàng)。 5. 和和按鈕:按鈕:“” 下一級(jí)菜單項(xiàng);下一級(jí)菜單項(xiàng);“”上一級(jí)菜單項(xiàng)。上一級(jí)菜單項(xiàng)。6. 插入插入(Insert)按鈕:按鈕:插入菜單項(xiàng)插入菜單項(xiàng)7. 刪除刪除(Delete)按鈕:按鈕:刪除菜單項(xiàng)刪除菜單項(xiàng)8. 和和按鈕:按鈕:改變菜單項(xiàng)位置。改變菜單項(xiàng)位置。10. 復(fù)選復(fù)選(Checked)檢查框:檢查框:菜單項(xiàng)為選定項(xiàng)。菜單項(xiàng)為選定項(xiàng)。 10. 有效有效(Enabled)檢查框:檢查框:True:菜單項(xiàng)可選;:菜單項(xiàng)可選;False:不可選。:不可選。 11. 顯

5、示窗口列表顯示窗口列表(Window List)檢查框:檢查框: 第10章 用戶(hù)界面設(shè)計(jì)61設(shè)計(jì)下拉菜單設(shè)計(jì)下拉菜單2設(shè)計(jì)子菜單或改變子菜單級(jí)別設(shè)計(jì)子菜單或改變子菜單級(jí)別 3為菜單項(xiàng)分組為菜單項(xiàng)分組 菜單名用減號(hào)菜單名用減號(hào)“-”4為菜單項(xiàng)指定訪問(wèn)鍵和快捷鍵為菜單項(xiàng)指定訪問(wèn)鍵和快捷鍵 與命令按鈕設(shè)置訪問(wèn)鍵相同。與命令按鈕設(shè)置訪問(wèn)鍵相同。5為菜單項(xiàng)加上復(fù)選標(biāo)記為菜單項(xiàng)加上復(fù)選標(biāo)記6禁止使用菜單項(xiàng)禁止使用菜單項(xiàng) 在程序代碼中可以通過(guò)程序代碼:在程序代碼中可以通過(guò)程序代碼: 菜單名菜單名.Enabled=False7菜單項(xiàng)的增減菜單項(xiàng)的增減 菜單設(shè)計(jì)的常用的幾項(xiàng)操作:菜單設(shè)計(jì)的常用的幾項(xiàng)操作: 第1

6、0章 用戶(hù)界面設(shè)計(jì)710.1.2 下拉式菜單下拉式菜單 10.1 菜單設(shè)計(jì)菜單設(shè)計(jì) 在下拉式菜單中,一般只需要對(duì)下拉菜單的最低級(jí)菜單項(xiàng)編寫(xiě)在下拉式菜單中,一般只需要對(duì)下拉菜單的最低級(jí)菜單項(xiàng)編寫(xiě)單擊事件代碼,如果對(duì)一個(gè)有下級(jí)菜單的菜單項(xiàng)編寫(xiě)了單擊事件,單擊事件代碼,如果對(duì)一個(gè)有下級(jí)菜單的菜單項(xiàng)編寫(xiě)了單擊事件,則在執(zhí)行下一級(jí)菜單時(shí),該菜單程序?qū)⑾葓?zhí)行。則在執(zhí)行下一級(jí)菜單時(shí),該菜單程序?qū)⑾葓?zhí)行。 在下拉式菜單中,一般有一個(gè)主菜單,稱(chēng)為菜單欄。每個(gè)菜單在下拉式菜單中,一般有一個(gè)主菜單,稱(chēng)為菜單欄。每個(gè)菜單欄包括一個(gè)或多個(gè)選擇項(xiàng),稱(chēng)為菜單標(biāo)題。欄包括一個(gè)或多個(gè)選擇項(xiàng),稱(chēng)為菜單標(biāo)題。 菜單控件(對(duì)象)只有

7、一個(gè)事件菜單控件(對(duì)象)只有一個(gè)事件單擊事件(單擊事件(Click()Click())一一. 設(shè)計(jì)下拉式菜單的步驟:設(shè)計(jì)下拉式菜單的步驟:(1)(1)新建一個(gè)窗體,并設(shè)計(jì)用戶(hù)界面。新建一個(gè)窗體,并設(shè)計(jì)用戶(hù)界面。(2) (2) 利用菜單編輯器設(shè)計(jì)各菜單項(xiàng)。利用菜單編輯器設(shè)計(jì)各菜單項(xiàng)。(3)(3)編寫(xiě)每個(gè)菜單項(xiàng)的事件過(guò)程。編寫(xiě)每個(gè)菜單項(xiàng)的事件過(guò)程。(4)(4)運(yùn)行調(diào)試各菜單命令。運(yùn)行調(diào)試各菜單命令。 第10章 用戶(hù)界面設(shè)計(jì)8二、下拉式菜單設(shè)計(jì)舉例二、下拉式菜單設(shè)計(jì)舉例【例10.1】 設(shè)計(jì)菜單程序,通過(guò)菜單控制標(biāo)簽中文字的字體,字型等,程序運(yùn)行界面如圖10.3所示。當(dāng)用戶(hù)選擇某一菜單項(xiàng)時(shí)執(zhí)行相應(yīng)的命

8、令功能。圖10.3 程序運(yùn)行界面設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下:1. 界面設(shè)計(jì)在窗體上添加一個(gè)Frame1和Label1,用于顯示文字信息。啟動(dòng)菜單編輯器,所要建立的菜單中各菜單項(xiàng)的屬性設(shè)置如表10.1所示,菜單編輯器中各項(xiàng)設(shè)置如圖10.4所示,對(duì)每一個(gè)菜單項(xiàng)輸入標(biāo)題、名稱(chēng)和選擇相應(yīng)的快捷鍵。 第10章 用戶(hù)界面設(shè)計(jì)9標(biāo)題標(biāo)題(Caption)名稱(chēng)名稱(chēng)(Name)索引值索引值說(shuō)說(shuō) 明明字體字體字體字體主菜單項(xiàng)主菜單項(xiàng)1.宋體宋體 songti子菜單子菜單11 快捷鍵快捷鍵Ctrl+S.楷體楷體kaiti子菜單子菜單12 快捷鍵快捷鍵Ctrl+K.黑體黑體heiti子菜單子菜單13 快捷鍵快捷鍵Ct

9、rl+H字型字型字型字型主菜單項(xiàng)主菜單項(xiàng)2.粗體(粗體(&B) fontstyle0子菜單子菜單21 熱鍵熱鍵B.斜體(斜體(&I)fontstyle1子菜單子菜單22 熱鍵熱鍵I.下劃線(xiàn)(下劃線(xiàn)(&U)fontstyle2子菜單子菜單23 熱鍵熱鍵U表10.1 菜單項(xiàng)屬性設(shè)置(2)編寫(xiě)菜單項(xiàng)代碼)編寫(xiě)菜單項(xiàng)代碼Private Sub Form_Load()Label1.FontSize = 16Label1.Caption = 長(zhǎng)亭外古道邊長(zhǎng)亭外古道邊 + Chr(13) + Chr(10) + 芳草碧連天芳草碧連天 + Chr(13) + Chr(10) + 問(wèn)君此

10、去幾時(shí)來(lái)問(wèn)君此去幾時(shí)來(lái) + Chr(13) + Chr(10) + 來(lái)時(shí)莫徘徊來(lái)時(shí)莫徘徊End SubPrivate Sub songti_Click()Label1.FontName = 宋體宋體End SubPrivate Sub heiti_Click()Label1.FontName = 黑體黑體End SubPrivate Sub kaiti_Click()Label1.FontName = 楷體楷體_GB2312End Sub 第10章 用戶(hù)界面設(shè)計(jì)10Private Sub fontstyle_Click(Index As Integer)fontstyle(Index).Che

11、cked = Not fontstyle(Index).CheckedSelect Case IndexCase 0Label1.FontBold = fontstyle(Index).CheckedCase 1Label1.FontItalic = fontstyle(Index).CheckedCase 2Label1.FontUnderline = fontstyle(Index).CheckedEnd SelectEnd Sub字型下拉菜單代碼如下:字型下拉菜單代碼如下: 第10章 用戶(hù)界面設(shè)計(jì)11 彈出式菜單是獨(dú)立于菜單欄顯示在窗體或指定控件上的浮動(dòng)菜單,菜單彈出式菜單是獨(dú)立于菜單欄

12、顯示在窗體或指定控件上的浮動(dòng)菜單,菜單的顯示位置與鼠標(biāo)當(dāng)前位置有關(guān)。實(shí)現(xiàn)步驟如下:的顯示位置與鼠標(biāo)當(dāng)前位置有關(guān)。實(shí)現(xiàn)步驟如下: 1. 在菜單編輯器中建立該菜單。在菜單編輯器中建立該菜單。 2.設(shè)置其頂層菜單項(xiàng)(主菜單項(xiàng))的設(shè)置其頂層菜單項(xiàng)(主菜單項(xiàng))的Visible屬性為屬性為False(不可見(jiàn))。(不可見(jiàn))。 3.在窗體或控件的在窗體或控件的MouseUp或或MouseDown事件中調(diào)用事件中調(diào)用PopupMenu方法顯方法顯示該菜單。示該菜單。PopupMenu的使用方法為:的使用方法為: PopupMenu ,flags,x,y,Boldcommand10.1.3 彈出式菜單彈出式菜單

13、其中:其中: 關(guān)鍵字關(guān)鍵字“PopupMenuPopupMenu”可以前置窗體名稱(chēng),但不可前置其他控件名可以前置窗體名稱(chēng),但不可前置其他控件名稱(chēng)。稱(chēng)。 是指通過(guò)菜單編輯器設(shè)計(jì)的、至少有一個(gè)子菜單項(xiàng)的菜是指通過(guò)菜單編輯器設(shè)計(jì)的、至少有一個(gè)子菜單項(xiàng)的菜單名稱(chēng)(單名稱(chēng)(Name)。)。 Flags參數(shù)為常數(shù),用來(lái)定義顯示位置與行為參數(shù)為常數(shù),用來(lái)定義顯示位置與行為, ,其取值見(jiàn)表其取值見(jiàn)表10.210.2 第10章 用戶(hù)界面設(shè)計(jì)12位置常數(shù)位置常數(shù)值值描述描述vbPopupMenuLeftAlign 0缺省值。彈出式菜單的左邊定位于缺省值。彈出式菜單的左邊定位于 x。vbPopupMenuCente

14、rAlign 4彈出式菜單以彈出式菜單以 x為居中心。為居中心。vbPopupMenuRightAlign 8彈出式菜單的右邊定位于彈出式菜單的右邊定位于 x。行為常數(shù)行為常數(shù)值值描述描述vbPopupMenuLeftButton 0缺省值。缺省值。 僅當(dāng)使用鼠標(biāo)右鍵單擊時(shí),僅當(dāng)使用鼠標(biāo)右鍵單擊時(shí), 彈出式彈出式菜單中的項(xiàng)目才響應(yīng)鼠標(biāo)單擊。菜單中的項(xiàng)目才響應(yīng)鼠標(biāo)單擊。vbPopupMenuRightButton 2彈出式菜單中的項(xiàng)目可接受左、右鍵單擊。彈出式菜單中的項(xiàng)目可接受左、右鍵單擊。10.1.3 彈出式彈出式菜單設(shè)計(jì)菜單設(shè)計(jì)表表10.2 flags參數(shù)值表參數(shù)值表Boldcommand參

15、數(shù)設(shè)置菜單項(xiàng)可以粗體顯示。參數(shù)設(shè)置菜單項(xiàng)可以粗體顯示。一般的彈出式菜單是在右擊時(shí)彈出,所以PopupMenu方法一般是放在對(duì)象的MouseDown事件過(guò)程中,根據(jù)按下的是鼠標(biāo)左鍵還是右鍵來(lái)決定是否彈出菜單。 第10章 用戶(hù)界面設(shè)計(jì)13例10.2】 為【例10.1】添加一個(gè)標(biāo)簽的彈出式菜單,該菜單包含有“10”、“12”和“14”3個(gè)菜單項(xiàng),如圖10.5所示。單擊相應(yīng)的菜單項(xiàng)后可以改變標(biāo)簽中文字的字體大小。彈出式式菜單設(shè)計(jì)舉例彈出式式菜單設(shè)計(jì)舉例圖10.5 彈出式菜單Private Sub Label1_MouseDown(Button As Integer, Shift As Integer,

16、 X As Single, Y As Single)If Button = 2 Then 按下鼠標(biāo)右鍵Form1.PopupMenu fsize, 4 Or 2End IfEnd subPrivate Sub size_Click(Index As Integer)Select Case IndexCase 0Label1.fontsize = 10Case 1Label1.fontsize = 12Case 2Label1.fontsize = 14End SelectEnd sub 第10章 用戶(hù)界面設(shè)計(jì)14用用“菜單編輯器菜單編輯器”對(duì)話(huà)框創(chuàng)建好的菜單,在程序運(yùn)行過(guò)程對(duì)話(huà)框創(chuàng)建好的菜單,

17、在程序運(yùn)行過(guò)程中并非就一成不變。用戶(hù)可以根據(jù)實(shí)際運(yùn)行情況動(dòng)態(tài)地調(diào)整和中并非就一成不變。用戶(hù)可以根據(jù)實(shí)際運(yùn)行情況動(dòng)態(tài)地調(diào)整和控制菜單的使用,給菜單增加一些靈活性。如當(dāng)某菜單項(xiàng)執(zhí)行控制菜單的使用,給菜單增加一些靈活性。如當(dāng)某菜單項(xiàng)執(zhí)行的操作不適合當(dāng)前環(huán)境時(shí),可以暫時(shí)使其失效或?qū)⑵潆[藏起來(lái)。的操作不適合當(dāng)前環(huán)境時(shí),可以暫時(shí)使其失效或?qū)⑵潆[藏起來(lái)。當(dāng)需要時(shí)也可以添加或刪除某菜單項(xiàng)。當(dāng)需要時(shí)也可以添加或刪除某菜單項(xiàng)。隱藏或顯示菜單項(xiàng)并不能真正地改變菜單的數(shù)量,要使菜隱藏或顯示菜單項(xiàng)并不能真正地改變菜單的數(shù)量,要使菜單項(xiàng)真正地、動(dòng)態(tài)地增減(從內(nèi)存中),則必須使用菜單控件單項(xiàng)真正地、動(dòng)態(tài)地增減(從內(nèi)存中),

18、則必須使用菜單控件數(shù)組實(shí)現(xiàn)。運(yùn)行時(shí)通過(guò)數(shù)組實(shí)現(xiàn)。運(yùn)行時(shí)通過(guò)Load語(yǔ)句增加新的菜單控件,使用語(yǔ)句增加新的菜單控件,使用UnLoad語(yǔ)句將其刪除。語(yǔ)句將其刪除。10.1.4 動(dòng)態(tài)菜單動(dòng)態(tài)菜單Load 控件數(shù)組名(index) Unload 控件數(shù)組名(index) 第10章 用戶(hù)界面設(shè)計(jì)1510.1. 4 動(dòng)態(tài)菜單動(dòng)態(tài)菜單【例例10.3】 設(shè)計(jì)如下程序,當(dāng)文本框中沒(méi)有任何文字時(shí),設(shè)計(jì)如下程序,當(dāng)文本框中沒(méi)有任何文字時(shí),“字體大小字體大小”菜單中的各項(xiàng)均變?yōu)榛疑@示,表示當(dāng)前不可用;當(dāng)用戶(hù)在文本框中輸菜單中的各項(xiàng)均變?yōu)榛疑@示,表示當(dāng)前不可用;當(dāng)用戶(hù)在文本框中輸入了文字后選擇某菜單項(xiàng)后,可將文字大

19、小設(shè)為對(duì)應(yīng)值并在當(dāng)前菜單項(xiàng)入了文字后選擇某菜單項(xiàng)后,可將文字大小設(shè)為對(duì)應(yīng)值并在當(dāng)前菜單項(xiàng)的前面加一個(gè)的前面加一個(gè)“”,如圖,如圖10.6(a)、圖)、圖10.6(b)所示。如果用戶(hù)選擇)所示。如果用戶(hù)選擇了了“14”菜單項(xiàng),則菜單項(xiàng),則“10”菜單項(xiàng)將隱藏,并且添加菜單項(xiàng)菜單項(xiàng)將隱藏,并且添加菜單項(xiàng)“16”,其,其功能與其他菜單項(xiàng)相同,當(dāng)用戶(hù)重新選擇了功能與其他菜單項(xiàng)相同,當(dāng)用戶(hù)重新選擇了“12”菜單項(xiàng)時(shí),菜單項(xiàng)時(shí),“16”菜菜單項(xiàng)將被刪除,并恢復(fù)菜單項(xiàng)單項(xiàng)將被刪除,并恢復(fù)菜單項(xiàng)“10”的可見(jiàn)性,即文字字號(hào)最大值為的可見(jiàn)性,即文字字號(hào)最大值為16,最小為最小為10,菜單中只能同時(shí)存在三個(gè)選項(xiàng),

20、如圖,菜單中只能同時(shí)存在三個(gè)選項(xiàng),如圖10.6(c)、圖)、圖10.6(d)所示。所示。圖10.6 動(dòng)態(tài)修改菜單示例(b)(c)(d)(a) 第10章 用戶(hù)界面設(shè)計(jì)1610.2 通用對(duì)話(huà)框工程工程/部件部件 選定控件標(biāo)簽選定控件標(biāo)簽選定選定Microsoft CommDialog Control 6.0 CommonDialog控件不是標(biāo)準(zhǔn)控件,是一種ActiveX控件,位于Microsoft Common Dialog Control 6.0部件中。確定確定通用對(duì)話(huà)框圖標(biāo) 第10章 用戶(hù)界面設(shè)計(jì)1710.2.1 通用對(duì)話(huà)框的基本屬性和方法通用對(duì)話(huà)框的基本屬性和方法CommonDialog控件

21、的基本屬性控件的基本屬性(1) Action屬性屬性: 該屬性決定打開(kāi)何種類(lèi)型的標(biāo)準(zhǔn)對(duì)話(huà)框,其取值如表10.4所示。該屬性不能在屬性窗口中設(shè)置,只能在程序中賦值。表10.4 打開(kāi)通用對(duì)話(huà)框的方法與Action屬性設(shè)置類(lèi)型Action屬性方法無(wú)對(duì)話(huà)框0“打開(kāi)”對(duì)話(huà)框1ShowOpen“另存為”對(duì)話(huà)框2ShowSave“顏色”對(duì)話(huà)框3ShowColor“字體”對(duì)話(huà)框4ShowFont“打印”對(duì)話(huà)框5ShowPrinter“幫助”對(duì)話(huà)框6ShowHelp 第10章 用戶(hù)界面設(shè)計(jì)18(2)Name屬性屬性:CommonDialog控件的名稱(chēng)屬性。(3)CancelError屬性屬性:多數(shù)對(duì)話(huà)框都有“取

22、消”按鈕,用于向應(yīng)用程序表示用戶(hù)想取消當(dāng)前操作。CancelError屬性的作用是向應(yīng)用程序報(bào)告用戶(hù)取消當(dāng)前的操作,通過(guò)一個(gè)錯(cuò)誤報(bào)告給應(yīng)用程序。如果該屬性設(shè)置為T(mén)rue,在程序的運(yùn)行階段,用戶(hù)選擇“取消”操作時(shí),出現(xiàn)錯(cuò)誤提示。默認(rèn)是False,不出現(xiàn)錯(cuò)誤提示。對(duì)話(huà)框打開(kāi)后,為了防止用戶(hù)沒(méi)有輸入任何信息便使用取消操作,則可用此屬性設(shè)置出錯(cuò)警告。(4)Flags屬性:屬性:用于設(shè)置對(duì)話(huà)框外觀及工作方式。對(duì)于每種對(duì)話(huà)框都有許多不同的設(shè)置值。 在通用對(duì)話(huà)框的使用過(guò)程中,每種對(duì)話(huà)框都有自己的特殊屬性。CommonDialog控件的屬性可以在屬性窗口中設(shè)置,也可在其“屬性頁(yè)”對(duì)話(huà)框中設(shè)置。在窗體中的Com

23、monDialog控件上右擊,在彈出的快捷菜單中選擇“屬性”命令,打開(kāi)“屬性頁(yè)”對(duì)話(huà)框,該對(duì)話(huà)框中有五個(gè)選項(xiàng)卡,分別可對(duì)不同類(lèi)型的標(biāo)準(zhǔn)對(duì)話(huà)框設(shè)置屬性。 第10章 用戶(hù)界面設(shè)計(jì)19FilterIndexDefaultExtDialogTiltleFileName InitDirFilter 在設(shè)計(jì)時(shí),可以通過(guò)屬性窗口設(shè)置通用對(duì)話(huà)框的屬性設(shè)置控件屬性,也可以使在設(shè)計(jì)時(shí),可以通過(guò)屬性窗口設(shè)置通用對(duì)話(huà)框的屬性設(shè)置控件屬性,也可以使用通用對(duì)話(huà)框的屬性頁(yè)設(shè)置相關(guān)屬性。用通用對(duì)話(huà)框的屬性頁(yè)設(shè)置相關(guān)屬性。 2CommonDialog控件的方法控件的方法在程序中要使用在程序中要使用CommonDialog控件的

24、標(biāo)準(zhǔn)對(duì)話(huà)框,除了使用控件的標(biāo)準(zhǔn)對(duì)話(huà)框,除了使用CommonDialog控控件的件的Action屬性設(shè)置對(duì)話(huà)框的類(lèi)型外,還可以使用屬性設(shè)置對(duì)話(huà)框的類(lèi)型外,還可以使用CommonDialog控件的方法。這些控件的方法。這些方法方法如表如表10.4所示。所示。例如:例如:CommonDialog1.Action=1或者或者CommonDialog1.ShowOpen 第10章 用戶(hù)界面設(shè)計(jì)20 10.2.2 “打開(kāi)打開(kāi)” 對(duì)話(huà)框?qū)υ?huà)框vCancelError:返回或設(shè)置一個(gè)值,該值指示當(dāng)單擊:返回或設(shè)置一個(gè)值,該值指示當(dāng)單擊“取消取消”按鈕時(shí)是否出錯(cuò)。按鈕時(shí)是否出錯(cuò)。vDefaultExt:用于設(shè)置

25、或返回對(duì)話(huà)框默認(rèn)的文件擴(kuò)展名。該:用于設(shè)置或返回對(duì)話(huà)框默認(rèn)的文件擴(kuò)展名。該屬性值是一個(gè)文件擴(kuò)展名字符串,如屬性值是一個(gè)文件擴(kuò)展名字符串,如“*.txt”、“*.doc”等。等。當(dāng)保存一個(gè)沒(méi)有指定擴(kuò)展名的文件時(shí),系統(tǒng)自動(dòng)添加默認(rèn)擴(kuò)當(dāng)保存一個(gè)沒(méi)有指定擴(kuò)展名的文件時(shí),系統(tǒng)自動(dòng)添加默認(rèn)擴(kuò)展名。展名。vDialogTitle:返回或設(shè)置對(duì)話(huà)框的標(biāo)題。:返回或設(shè)置對(duì)話(huà)框的標(biāo)題。vFilename:返回或設(shè)置用戶(hù)所選擇的文件的完整路徑和文件:返回或設(shè)置用戶(hù)所選擇的文件的完整路徑和文件名稱(chēng)。名稱(chēng)。vFileTitle:返回用戶(hù)選擇文件的文件名稱(chēng),包括擴(kuò)展名,但:返回用戶(hù)選擇文件的文件名稱(chēng),包括擴(kuò)展名,但不包括

26、路徑。不包括路徑。 使用通用對(duì)話(huà)框控件的使用通用對(duì)話(huà)框控件的ShowOpen方法,或?qū)⒎椒?,或?qū)ction屬性賦值為屬性賦值為1,可以在運(yùn)行時(shí)顯示,可以在運(yùn)行時(shí)顯示“打開(kāi)打開(kāi)”對(duì)話(huà)框。需要設(shè)置以下屬性:對(duì)話(huà)框。需要設(shè)置以下屬性: 第10章 用戶(hù)界面設(shè)計(jì)216. Filter:設(shè)置或返回在對(duì)話(huà)框的文件類(lèi)型列表框中所顯示文件類(lèi)型。:設(shè)置或返回在對(duì)話(huà)框的文件類(lèi)型列表框中所顯示文件類(lèi)型。該屬性值可以是一組元素或用該屬性值可以是一組元素或用“|”符號(hào)分開(kāi)的分別表示不同類(lèi)型符號(hào)分開(kāi)的分別表示不同類(lèi)型文件的多組元素組成。例如,如果要在文件的多組元素組成。例如,如果要在“文件類(lèi)型文件類(lèi)型”列表框中顯列表框中

27、顯示下列三種文件類(lèi)型以供用戶(hù)選擇。示下列三種文件類(lèi)型以供用戶(hù)選擇。WORD文檔文檔(*.DOC) 擴(kuò)展名為擴(kuò)展名為DOC的的Word文件文件文本文件文本文件(*.TXT) 擴(kuò)展名為擴(kuò)展名為T(mén)XT的文本文件的文本文件All Files(*.*) 所有文件所有文件那么那么Filter屬性就應(yīng)該設(shè)為:屬性就應(yīng)該設(shè)為: WORD文檔文檔(*.doc)|*.doc|文本文件文本文件(*.txt)|*.txt|所有文件所有文件|*.*7. FilterIndex:返回或設(shè)置:返回或設(shè)置“打開(kāi)打開(kāi)”或或“另存為另存為”對(duì)話(huà)框中一個(gè)默對(duì)話(huà)框中一個(gè)默認(rèn)的過(guò)濾器。認(rèn)的過(guò)濾器。8. InitDir:返回或設(shè)置:返回

28、或設(shè)置“打開(kāi)打開(kāi)”對(duì)話(huà)框中的初始目錄。對(duì)話(huà)框中的初始目錄。9. MaxFileSize:返回或設(shè)置使用:返回或設(shè)置使用 CommonDialog 控件時(shí),被打開(kāi)的控件時(shí),被打開(kāi)的文件名的最大尺寸。文件名的最大尺寸。10.2.2 “打開(kāi)打開(kāi)” 對(duì)話(huà)框?qū)υ?huà)框上述屬性若在程序中設(shè)置,都必須放在使用上述屬性若在程序中設(shè)置,都必須放在使用Action屬性或?qū)傩曰騍howOPen和和ShowSave方法調(diào)用的方法調(diào)用的“打開(kāi)打開(kāi)”或或“另存為另存為”對(duì)話(huà)框語(yǔ)句之前。否則起不到其功能對(duì)話(huà)框語(yǔ)句之前。否則起不到其功能 第10章 用戶(hù)界面設(shè)計(jì)22 【例10.4】 編寫(xiě)一個(gè)簡(jiǎn)單的文本文件編輯程序,如圖編寫(xiě)一個(gè)簡(jiǎn)單

29、的文本文件編輯程序,如圖10.9所示,文件的內(nèi)所示,文件的內(nèi)容顯示在上面的文本框中。從左到右共容顯示在上面的文本框中。從左到右共6個(gè)命令按鈕依次按約定命名。下面?zhèn)€命令按鈕依次按約定命名。下面列出了列出了Command1事件過(guò)程的程序代碼,其他的事件過(guò)程在以后的各節(jié)中分事件過(guò)程的程序代碼,其他的事件過(guò)程在以后的各節(jié)中分別給出。別給出。10.2.2 “打開(kāi)打開(kāi)” 對(duì)話(huà)框?qū)υ?huà)框圖10.9 通用對(duì)話(huà)框示例 第10章 用戶(hù)界面設(shè)計(jì)23程序運(yùn)行時(shí),當(dāng)CommonDialog控件的Action屬性為2或者調(diào)用ShowSave方法時(shí),系統(tǒng)就會(huì)彈出“另存為”對(duì)話(huà)框,它為用戶(hù)在存儲(chǔ)文件時(shí)提供了一個(gè)標(biāo)準(zhǔn)的用戶(hù)界面。

30、實(shí)際上“另存為”對(duì)話(huà)框和“打開(kāi)”對(duì)話(huà)框涉及的屬性基本一樣,獨(dú)有一個(gè)屬性DefaultExt,表示默認(rèn)擴(kuò)展名。10.2.3 “另存為另存為” 對(duì)話(huà)框?qū)υ?huà)框【例10.5】 為例10.4中的“另存為”命令按鈕(Command2)編寫(xiě)事件過(guò)程,把文本框(Text1)中的內(nèi)容寫(xiě)入一個(gè)文本文件。 第10章 用戶(hù)界面設(shè)計(jì)24顏色對(duì)話(huà)框是當(dāng)顏色對(duì)話(huà)框是當(dāng)Action值為值為3時(shí)或者調(diào)用時(shí)或者調(diào)用ShowColor方法時(shí),系統(tǒng)就會(huì)彈出方法時(shí),系統(tǒng)就會(huì)彈出“顏色顏色”對(duì)話(huà)框,為用戶(hù)提供了對(duì)話(huà)框,為用戶(hù)提供了顏色選擇器,如右圖。顏色選擇器,如右圖。 重要屬性重要屬性 Color:用來(lái)返回或設(shè)置選定的顏色。用來(lái)返回或

31、設(shè)置選定的顏色。 10.2.4 “顏色顏色”對(duì)話(huà)框?qū)υ?huà)框【例例10.6】 為例為例10.4中的中的“顏色顏色”命令按鈕命令按鈕(Command3)編寫(xiě)事件過(guò)程,用編寫(xiě)事件過(guò)程,用“顏色顏色”對(duì)話(huà)框設(shè)對(duì)話(huà)框設(shè)置文本框的前景顏色。置文本框的前景顏色。“顏色顏色”按鈕的單擊事件過(guò)程如下:按鈕的單擊事件過(guò)程如下:Private Sub Command3_Click() CommonDialog1.Action=3 Text1.ForeColor=CommonDialog1.ColorEnd Sub 第10章 用戶(hù)界面設(shè)計(jì)2510.2.5 “字體字體”對(duì)話(huà)框?qū)υ?huà)框 字體對(duì)話(huà)框是字體對(duì)話(huà)框是Action為

32、為4時(shí)時(shí)的通用對(duì)話(huà)框,如下圖所示,提供的通用對(duì)話(huà)框,如下圖所示,提供用戶(hù)選擇字體、字號(hào)及字體樣式等。用戶(hù)選擇字體、字號(hào)及字體樣式等。字體對(duì)話(huà)框重要的屬性有:字體對(duì)話(huà)框重要的屬性有:Color, FontName, FontSize, FontBold FontItalic , FontStrikethru, FontUnderline, Max等等. FontName FontBold、FontItalicFontSizeFontStrikethruFontUnderline ColorMin、Max 第10章 用戶(hù)界面設(shè)計(jì)26Flags屬性:屬性:設(shè)置所顯示的字體類(lèi)型,設(shè)置所顯示的字體類(lèi)型,

33、數(shù)據(jù)類(lèi)型為數(shù)據(jù)類(lèi)型為L(zhǎng)ong。 注意注意 在顯示在顯示“字體字體”對(duì)話(huà)框前,必須先將對(duì)話(huà)框前,必須先將 Flags 屬性設(shè)置為屬性設(shè)置為 cdlCFScreenFonts,cdlCFPrinterFonts,或,或cdcdlCFBoth。否則,會(huì)發(fā)生字體。否則,會(huì)發(fā)生字體不存在的錯(cuò)誤。不存在的錯(cuò)誤。“字體”對(duì)話(huà)框的Flags屬性設(shè)置值系統(tǒng)常數(shù)值說(shuō)明cdlCFScreenFonts&H1顯示屏幕字體cdlCFPrinterFonts&H2顯示打印機(jī)字體cdlCFBoth&H3顯示打印機(jī)和屏幕字體cdlCFEffects&H100在“字體”對(duì)話(huà)框中顯示刪除線(xiàn)和下劃線(xiàn)

34、以及顏色組合框10.2.5 “字體字體”對(duì)話(huà)框?qū)υ?huà)框 第10章 用戶(hù)界面設(shè)計(jì)27【例例10.7】 為例為例10.4中的中的“字體字體”命令按鈕命令按鈕(Command4)編編寫(xiě)事件過(guò)程,設(shè)置文本框的字體。寫(xiě)事件過(guò)程,設(shè)置文本框的字體?!白煮w”按鈕的單擊事件過(guò)程如下:Private Sub Command4_Click() CommonDialog1.Flags = cdlCFScreenFonts Or cdlCFEffects CommonDialog1.Max = 100 CommonDialog1.Min = 1 CommonDialog1.ShowFont CommonDialog1.

35、Action =4 Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = Common

36、Dialog1.ColorEnd Sub 第10章 用戶(hù)界面設(shè)計(jì)28程序運(yùn)行時(shí),當(dāng)程序運(yùn)行時(shí),當(dāng)CommonDialog控件的控件的Action屬性為屬性為5或者調(diào)用或者調(diào)用ShowPrinter方法時(shí),系統(tǒng)就會(huì)彈出方法時(shí),系統(tǒng)就會(huì)彈出“打印打印”對(duì)話(huà)框,它是一個(gè)設(shè)置選擇對(duì)話(huà)框,它是一個(gè)設(shè)置選擇打印參數(shù)的界面,如圖打印參數(shù)的界面,如圖10.12所示。所示。 10.2.6 “打印打印”對(duì)話(huà)框?qū)υ?huà)框 圖10.12 “打印”對(duì)話(huà)框重要屬性:重要屬性:Copies:返回或設(shè)置需要打印的份數(shù)。Max、Min:返回或設(shè)置打印范圍允許的最大和最小值。1. FromPage、ToPage:返回或設(shè)置起始頁(yè)號(hào)和

37、終止頁(yè)號(hào)。當(dāng) cdlPDPageNums標(biāo)志被設(shè)置時(shí)才有效。 第10章 用戶(hù)界面設(shè)計(jì)29【例例10.8】 為例為例10.4中的中的“打印打印”命令按鈕命令按鈕(Command5)編編寫(xiě)事件過(guò)程,用寫(xiě)事件過(guò)程,用“打印打印”對(duì)話(huà)框打印文本框(對(duì)話(huà)框打印文本框(Text1)中的內(nèi))中的內(nèi)容。容。“打印打印”按鈕的單擊事件過(guò)程如下:按鈕的單擊事件過(guò)程如下:Private Sub Command5_Click() Dim i As Integer CommonDialog1.ShowPrinter CommonDialog1.Action =5 For i = 1 To CommonDialog1.C

38、opies Printer.Print Text1.Text Next i Printer.EndDoc 結(jié)束打印結(jié)束打印End Sub 第10章 用戶(hù)界面設(shè)計(jì)3010.2.7 “幫助幫助”對(duì)話(huà)框?qū)υ?huà)框程序運(yùn)行時(shí),當(dāng)CommonDialog控件的Action屬性為6或者調(diào)用ShowHelp方法時(shí),系統(tǒng)就會(huì)彈出“幫助”對(duì)話(huà)框,它可以為用戶(hù)制作應(yīng)用程序的聯(lián)機(jī)幫助。“幫助”對(duì)話(huà)框本身不能建立應(yīng)用程序的幫助文件,它只能將已建好的幫助文件從磁盤(pán)中提取出來(lái),并與界面建立連接,從而達(dá)到顯示并檢索幫助信息的目的。使用ShowHelp方法前,必須將CommonDialog控件的HelpFile和HelpComm

39、and屬性設(shè)置為與其相應(yīng)的一個(gè)常數(shù)或值,否則,Winhlp32.exe就不能顯示幫助文件。對(duì)于“幫助”對(duì)話(huà)框,有以下幾個(gè)重要屬性:HelpCommand:返回或設(shè)置需要的聯(lián)機(jī)幫助的類(lèi)型。具體設(shè)置請(qǐng)參閱VB幫助系統(tǒng)HelpFile:確定Microsoft Windows Help文件的路徑和文件名,應(yīng)用程序使用這個(gè)文件顯示Help或聯(lián)機(jī)文檔。HelpKey:返回或設(shè)置標(biāo)識(shí)請(qǐng)求的幫助主題的關(guān)鍵字。HelpContext:該屬性與HelpCommand屬性一起使用(設(shè)置HelpCommand=cdlHelpContext),返回或設(shè)置請(qǐng)求的幫助主題的上下文 ID以指定要顯示的幫助主題。 第10章 用

40、戶(hù)界面設(shè)計(jì)31【例例10.9】 為例為例10.4中的中的“幫助幫助”命令按鈕命令按鈕(Command6)編編寫(xiě)事件過(guò)程,通過(guò)寫(xiě)事件過(guò)程,通過(guò)“幫助幫助”對(duì)話(huà)框來(lái)顯示記事本程序的幫助對(duì)話(huà)框來(lái)顯示記事本程序的幫助文件。文件。“幫助幫助”按鈕的單擊事件過(guò)程如下:按鈕的單擊事件過(guò)程如下:Private Sub Command6_Click() CommonDialog1.HelpCommand = cdlHelpContents CommonDialog1.HelpFile = c:windowshelpnotepad.hlp CommonDialog1.ShowHelp End Sub 第10章 用

41、戶(hù)界面設(shè)計(jì)32工具欄的制作有兩種方法:工具欄的制作有兩種方法:1. 是使用命令按鈕和圖形框來(lái)手工制作是使用命令按鈕和圖形框來(lái)手工制作2. 使用使用ToolBar控件和控件和ImageList控件來(lái)制作??丶?lái)制作。前一種方法比較繁瑣,較少使用。后一種方前一種方法比較繁瑣,較少使用。后一種方法較容易,在法較容易,在VB中常用后一種方法。中常用后一種方法。ToolBar控件和控件和ImageList控件并沒(méi)有在工具箱里,屬于控件并沒(méi)有在工具箱里,屬于ActiveX控件,需要為工程加載控件,需要為工程加載“Microsoft Windows Common Controls 6.0”控件。加載成控件。

42、加載成功后控件工具欄如圖功后控件工具欄如圖10.13所示。所示。10.3 工具欄工具欄 ImageList圖 10.13 添加控件成功后的工具箱ToolBar 第10章 用戶(hù)界面設(shè)計(jì)33ImageList控件不單獨(dú)使用,專(zhuān)門(mén)為其它控件提供圖像庫(kù)控件不單獨(dú)使用,專(zhuān)門(mén)為其它控件提供圖像庫(kù).使用方法如下:使用方法如下:在窗體中添加一個(gè)在窗體中添加一個(gè)ImageList控控件。其大小固定,運(yùn)行時(shí)不可見(jiàn)。件。其大小固定,運(yùn)行時(shí)不可見(jiàn)。右擊右擊ImageList控件,選擇控件,選擇“屬屬性性”,打開(kāi),打開(kāi)“屬性頁(yè)屬性頁(yè)”對(duì)話(huà)框,如對(duì)話(huà)框,如圖所示。圖所示。1. 選擇選擇“圖像圖像”選項(xiàng)卡,單擊選項(xiàng)卡,單擊

43、“插入圖片插入圖片”按鈕,逐個(gè)向按鈕,逐個(gè)向ImageList控件中加入圖片;如果控件中加入圖片;如果需要?jiǎng)h除多余的圖片,選中后點(diǎn)需要?jiǎng)h除多余的圖片,選中后點(diǎn)擊擊“刪除圖片刪除圖片”按鈕。按鈕。10.3.1 ImageList控件控件 第10章 用戶(hù)界面設(shè)計(jì)34使用使用ToolBar控件具體創(chuàng)建一個(gè)工具欄,首先在窗體中添加一個(gè)控件具體創(chuàng)建一個(gè)工具欄,首先在窗體中添加一個(gè)ToolBar控件,設(shè)置控件,設(shè)置ToolBar控件的控件的Align屬性以控制工具欄在窗體中的位置。右擊選屬性以控制工具欄在窗體中的位置。右擊選擇擇“屬性屬性”,打開(kāi),打開(kāi)“屬性頁(yè)屬性頁(yè)”對(duì)話(huà)框。對(duì)話(huà)框。10.3.2 Tool

44、Bar控件控件1. 設(shè)置設(shè)置ToolBar控件中的按鈕控件中的按鈕點(diǎn)擊點(diǎn)擊“按鈕按鈕”選項(xiàng)卡,如圖所示。選項(xiàng)卡,如圖所示。單擊單擊“插入按鈕插入按鈕”和和“刪除按鈕刪除按鈕”,可,可以增加或減少工具欄中的按鈕;每個(gè)按鈕需以增加或減少工具欄中的按鈕;每個(gè)按鈕需要使用要使用ImageList控件中的哪個(gè)圖片作為外控件中的哪個(gè)圖片作為外觀顯示,在觀顯示,在“圖像圖像”中進(jìn)行設(shè)置;中進(jìn)行設(shè)置;“關(guān)鍵字關(guān)鍵字”用于在程序代碼中引用該按鈕。用于在程序代碼中引用該按鈕?!皹?biāo)題標(biāo)題”與與“描述描述”文本框中是在按鈕文本框中是在按鈕上顯示的文字及按鈕的說(shuō)明信息。上顯示的文字及按鈕的說(shuō)明信息。在在“值值”下拉列表

45、中可以設(shè)置按鈕的狀下拉列表中可以設(shè)置按鈕的狀態(tài):態(tài):0-tbrUnpressed為彈起狀態(tài)為彈起狀態(tài) 1-tbrPressed為按下?tīng)顟B(tài)。為按下?tīng)顟B(tài)。圖10.15“屬性頁(yè)”中“按鈕”選項(xiàng)卡 第10章 用戶(hù)界面設(shè)計(jì)350-tbrDefault: 普通(默認(rèn)的)按鈕。普通(默認(rèn)的)按鈕。1-tbrCheck:復(fù)選框按鈕。具有按下、放開(kāi)兩種狀態(tài)。:復(fù)選框按鈕。具有按下、放開(kāi)兩種狀態(tài)。2-tbrButtonGroup:?jiǎn)芜x按鈕:?jiǎn)芜x按鈕3-tbrSeparator:分隔符。表示將不同組或不同類(lèi)的按鈕分開(kāi),:分隔符。表示將不同組或不同類(lèi)的按鈕分開(kāi),如單選按鈕。如單選按鈕。4-tbrPlaceholder

46、: 占位符。占位符。 5-thrDropdown: 下拉式按鈕??梢越⑾吕讲藛?。下拉式按鈕。可以建立下拉式菜單。10.3.2 ToolBar控件控件圖10.15“屬性頁(yè)”中“按鈕”選項(xiàng)卡在在“樣式樣式”下拉列表中可以設(shè)置按下拉列表中可以設(shè)置按鈕的行為特點(diǎn),并且將影響按鈕的功能。鈕的行為特點(diǎn),并且將影響按鈕的功能。具有六種類(lèi)型:具有六種類(lèi)型: 第10章 用戶(hù)界面設(shè)計(jì)362. 設(shè)置設(shè)置ToolBar控件的通用屬性,和控件的通用屬性,和ImageList控件建立關(guān)控件建立關(guān)聯(lián)。聯(lián)。打開(kāi)打開(kāi)“通用通用”選項(xiàng)卡,在圖像列表選項(xiàng)中選擇圖像列表控選項(xiàng)卡,在圖像列表選項(xiàng)中選擇圖像列表控件名件名ImageL

47、ist1,這樣就建立了工具欄控件與圖像列表控件的,這樣就建立了工具欄控件與圖像列表控件的關(guān)聯(lián)。關(guān)聯(lián)。在程序運(yùn)行時(shí),下述代碼也可建立工具欄控件與圖像列表在程序運(yùn)行時(shí),下述代碼也可建立工具欄控件與圖像列表控件的關(guān)聯(lián):控件的關(guān)聯(lián): Private Sub Form_Load()Toolbar1.ImageList = ImageList1End Sub一旦工具欄控件與圖像列表控件建立了關(guān)聯(lián),一旦工具欄控件與圖像列表控件建立了關(guān)聯(lián),ToolBar控控件件“屬性頁(yè)屬性頁(yè)”對(duì)話(huà)框的對(duì)話(huà)框的“按鈕按鈕”選項(xiàng)卡中的選項(xiàng)卡中的“圖像圖像”選項(xiàng)即選項(xiàng)即變?yōu)橛行?。只需在其中輸入圖像庫(kù)中圖像的索引號(hào)即可將對(duì)變?yōu)橛行А?/p>

48、只需在其中輸入圖像庫(kù)中圖像的索引號(hào)即可將對(duì)應(yīng)的圖片添加到按鈕上。應(yīng)的圖片添加到按鈕上。10.3.2 ToolBar控件控件 第10章 用戶(hù)界面設(shè)計(jì)373. 響應(yīng)響應(yīng)ToolBar控件事件控件事件 ToolBar控件常用的事件有兩個(gè):控件常用的事件有兩個(gè):ButtonClick和和ButtonMenuClick。前者對(duì)按鈕樣式為前者對(duì)按鈕樣式為0-2,后者對(duì)樣式為,后者對(duì)樣式為5的菜單按鈕。的菜單按鈕。 (1)用索引)用索引Index確定按鈕確定按鈕 (2) 用關(guān)鍵字用關(guān)鍵字Key確定按鈕確定按鈕Private Sub Toolbar1_ButtonClick(Byval Button As C

49、omctlLib.Button) Select Case Button.Index Case 1 FileNewProc Case 2 FileOpenProc End SelectEnd Sub注意:第注意:第1個(gè)按鈕的個(gè)按鈕的Index值為值為1。用。用Index還是用還是用Key根據(jù)實(shí)際需要,根據(jù)實(shí)際需要,Key 可可讀性好,可維護(hù)性好。讀性好,可維護(hù)性好。Select Case Button.Key Case TNew FileNewProc Case TOpen FileOpenProc . 第10章 用戶(hù)界面設(shè)計(jì)38【例10.9】 創(chuàng)建如圖所示的窗體,并創(chuàng)建如圖所示的窗體,并編寫(xiě)程

50、序代碼實(shí)現(xiàn)工具欄上各按鈕的編寫(xiě)程序代碼實(shí)現(xiàn)工具欄上各按鈕的功能。功能。圖10.16 例10.9 界面設(shè)計(jì)設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下:1. 設(shè)計(jì)界面設(shè)計(jì)界面首先在窗體上添加一個(gè)文本框,設(shè)置其首先在窗體上添加一個(gè)文本框,設(shè)置其Multiline屬性為屬性為T(mén)rue,ScrollBars屬性為屬性為2,添加,添加ImageList控件,該控件包含有圖所示的六個(gè)圖形??丶摽丶袌D所示的六個(gè)圖形。添加添加ToolBar控件,在按鈕選項(xiàng)卡中逐個(gè)添加按鈕??丶?,在按鈕選項(xiàng)卡中逐個(gè)添加按鈕。各按鈕屬性設(shè)置如表各按鈕屬性設(shè)置如表10.6所示。所示。索引關(guān)鍵字樣式圖像索引1B1- tbrCheck12I1

51、- tbrCheck23U1- tbrCheck343-tbrSeparator05lt2-tbrButtonGroup46ct2-tbrButtonGroup57rt2-tbrButtonGroup6 第10章 用戶(hù)界面設(shè)計(jì)39圖10.16 例10.9 界面設(shè)計(jì)2. 編寫(xiě)程序代碼編寫(xiě)程序代碼Private Sub Form_Load() Toolbar1.ImageList = ImageList1End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Key

52、Case BText1.FontBold = Not Text1.FontBoldCase IText1.FontItalic = Not Text1.FontItalicCase UText1.FontUnderline = Not Text1.FontUnderlineCase ltText1.Alignment = 0Case ctText1.Alignment = 2Case rtText1.Alignment = 1End SelectEnd Sub 第10章 用戶(hù)界面設(shè)計(jì)4010.4.1 鍵盤(pán)事件 在在Visual Basic中,提供中,提供KeyPress、KeyDown、Key

53、Up三種鍵盤(pán)事件,三種鍵盤(pán)事件,窗體和接受鍵盤(pán)輸入的控件都識(shí)別這三種事件。窗體和接受鍵盤(pán)輸入的控件都識(shí)別這三種事件。 KeyPress 按下對(duì)應(yīng)某按下對(duì)應(yīng)某ASCII 字符的鍵。字符的鍵。 KeyDown 按下鍵盤(pán)的任意鍵。按下鍵盤(pán)的任意鍵。 KeyUp 釋放鍵盤(pán)的任意鍵釋放鍵盤(pán)的任意鍵只有獲得焦點(diǎn)的對(duì)象才能夠接受鍵盤(pán)事件。只有獲得焦點(diǎn)的對(duì)象才能夠接受鍵盤(pán)事件。 1. KeyPress 事件事件在按下與在按下與ASCII字符對(duì)應(yīng)的鍵時(shí)將觸發(fā)字符對(duì)應(yīng)的鍵時(shí)將觸發(fā)KeyPress 事件。事件。 10.4鍵盤(pán)和鼠標(biāo)事件鍵盤(pán)和鼠標(biāo)事件 第10章 用戶(hù)界面設(shè)計(jì)41KeyPress 事件過(guò)程的語(yǔ)法格式是:

54、事件過(guò)程的語(yǔ)法格式是:Sub Object_KeyPress (KeyAscii As Integer)其中:其中: Object是指窗體或控件對(duì)象名,是指窗體或控件對(duì)象名,KeyAscii 參數(shù)返參數(shù)返回對(duì)應(yīng)于回對(duì)應(yīng)于ASCII字符代碼的整型數(shù)值。字符代碼的整型數(shù)值。 例如,如果希望將文本框中的所有字符都強(qiáng)制轉(zhuǎn)換為大例如,如果希望將文本框中的所有字符都強(qiáng)制轉(zhuǎn)換為大寫(xiě)字符,則可在輸入時(shí)使用此事件轉(zhuǎn)換大小寫(xiě):寫(xiě)字符,則可在輸入時(shí)使用此事件轉(zhuǎn)換大小寫(xiě):Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(Ucase(Chr(

55、KeyAscii)End Sub10.4鍵盤(pán)和鼠標(biāo)事件鍵盤(pán)和鼠標(biāo)事件 KeyPress 事件只識(shí)別事件只識(shí)別 Enter、Tab和和Backspace 鍵。不能鍵。不能夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。 第10章 用戶(hù)界面設(shè)計(jì)42【例例10.10】 設(shè)計(jì)一個(gè)應(yīng)用程序,在窗體中建設(shè)計(jì)一個(gè)應(yīng)用程序,在窗體中建立一個(gè)文本框和一個(gè)標(biāo)簽,在文本框中限定只能立一個(gè)文本框和一個(gè)標(biāo)簽,在文本框中限定只能輸入英文字母、空格和輸入英文字母、空格和BackSpace鍵,當(dāng)從鍵盤(pán)向鍵,當(dāng)從鍵盤(pán)向文本框輸入英文字符時(shí),將其轉(zhuǎn)換成大寫(xiě)字母并文本框輸入英文字符時(shí),將其轉(zhuǎn)換成大寫(xiě)字母并顯示在

56、標(biāo)簽中。程序運(yùn)行結(jié)果如圖所示。顯示在標(biāo)簽中。程序運(yùn)行結(jié)果如圖所示。10.4鍵盤(pán)和鼠標(biāo)事件鍵盤(pán)和鼠標(biāo)事件圖10.17 例10.10運(yùn)行結(jié)果Private Sub Text1_KeyPress(KeyAscii As Integer)Dim char As StringSelect Case KeyAsciiCase 65 To 90, 97 To 122, 32 char = UCase(Chr(KeyAscii) Label1.Caption = Label1.Caption & char Case 8 Label1.Caption = Left(Label1.Caption, Len

57、(Label1.Caption) - 1) Case Else KeyAscii = 0End Select End Sub 第10章 用戶(hù)界面設(shè)計(jì)432. KeyDown 和和 KeyUp 事件事件 當(dāng)一個(gè)對(duì)象具有焦點(diǎn)時(shí)按下(當(dāng)一個(gè)對(duì)象具有焦點(diǎn)時(shí)按下(KeyDown) 或松開(kāi)或松開(kāi) ( KeyUp ) 一個(gè)鍵時(shí)發(fā)生。一個(gè)鍵時(shí)發(fā)生。它們報(bào)告鍵盤(pán)本身準(zhǔn)確的物理狀態(tài):按下鍵它們報(bào)告鍵盤(pán)本身準(zhǔn)確的物理狀態(tài):按下鍵 (KeyDown) 及松開(kāi)鍵及松開(kāi)鍵 (KeyUp)。 KeyDown和和KeyUp事件能夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。事件能夠檢測(cè)其它功能鍵、編輯鍵和定位鍵。KeyUp 和和 Key

58、Down 事件過(guò)程的語(yǔ)法格式如下:事件過(guò)程的語(yǔ)法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)說(shuō)明:說(shuō)明:(1)KeyCode參數(shù)值是用戶(hù)所操作的鍵的掃描代碼,它告訴事件過(guò)程用參數(shù)值是用戶(hù)所操作的鍵的掃描代碼,它告訴事件過(guò)程用戶(hù)所操作的物理鍵,例如,不管鍵盤(pán)處于小寫(xiě)狀態(tài)還是大寫(xiě)狀態(tài),用戶(hù)戶(hù)所操作的物理鍵,例如,不管鍵盤(pán)處于小寫(xiě)狀態(tài)還是大寫(xiě)狀態(tài),用戶(hù)在鍵盤(pán)上按下在鍵盤(pán)上按下“A”健,健,KeyCode參數(shù)值相同。對(duì)

59、于有上檔字符和下檔參數(shù)值相同。對(duì)于有上檔字符和下檔字符的鍵,其字符的鍵,其KeyCode也是相同的,為下檔字符的也是相同的,為下檔字符的ASCII碼。碼。 第10章 用戶(hù)界面設(shè)計(jì)44 keycode 參數(shù)通過(guò)參數(shù)通過(guò) ASCII 值或鍵代碼常數(shù)來(lái)識(shí)別鍵。字母值或鍵代碼常數(shù)來(lái)識(shí)別鍵。字母鍵的鍵代碼與此字母的大寫(xiě)字符的鍵的鍵代碼與此字母的大寫(xiě)字符的 ASCII 值相同。所以值相同。所以 “A” 和和 “a” 的的 keycode 都是由都是由 Asc(“A”) 返回的數(shù)值。返回的數(shù)值。表表10.7 Keycode和和KeyAscii值值 第10章 用戶(hù)界面設(shè)計(jì)452.KeyDown 和和 KeyU

60、p 事件事件 KeyUp 和和 KeyDown 事件過(guò)程的語(yǔ)法格式如下:事件過(guò)程的語(yǔ)法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)說(shuō)明:說(shuō)明:(2)Shift參數(shù)是一個(gè)整數(shù),表示鍵盤(pán)事件發(fā)生時(shí)參數(shù)是一個(gè)整數(shù),表示鍵盤(pán)事件發(fā)生時(shí)Shift、Ctrl和和Alt鍵的狀鍵的狀態(tài)。態(tài)。Shift是一個(gè)位域參數(shù),由若干位組成,每個(gè)位的信息指出某一種狀態(tài)是一個(gè)位域參數(shù),由若干位組成,每個(gè)位的信息指出某一種狀態(tài)是打開(kāi)(用是打開(kāi)(用1表示)還是關(guān)閉(用表示)還是關(guān)閉(用0表示)。其中最右側(cè)三位

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論