版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【本章導(dǎo)讀】
本章介紹了通用對(duì)話框的的使用,菜單的設(shè)計(jì),多重窗體和多文檔界面以及鍵盤與鼠標(biāo)事件過程。在通用對(duì)話框使用中著重講述“文件”對(duì)話框,“打印”對(duì)話框和“字體”對(duì)話框;通過例子具體講解菜單編輯器的使用,以及怎么處理動(dòng)態(tài)菜單和彈出式菜單;認(rèn)識(shí)多文檔界面,了解多文檔界面和多重窗體的區(qū)別,并給出了具體例子;最后還介紹了鍵盤和鼠標(biāo)事件過程,通過實(shí)際例子的講解認(rèn)識(shí)KeyPress事件,KeyDown事件,KeyUp事件和鼠標(biāo)事件等。第9章界面設(shè)計(jì)第9章界面設(shè)計(jì)【本章要點(diǎn)】通用對(duì)話框的的使用菜單的設(shè)計(jì)多重窗體鍵盤與鼠標(biāo)事件過程9.1通用對(duì)話框
通用對(duì)話框控件是一個(gè)AcitveX部件,由于通用對(duì)話框控件不是Visualbasic的標(biāo)準(zhǔn)控件,并不會(huì)直接顯示在程序主界面中,所以要使用該控件編輯程序必須將它先添加到工具箱中,使用時(shí)和使用一般標(biāo)準(zhǔn)控件一樣,將它添加到窗體中使用。具體方法如下所述。(1)單擊菜單欄上的“工程“|“部件”命令,或者在工具箱上單擊鼠標(biāo)右鍵,彈出如圖9-1所示的“部件”對(duì)話框。(2)單擊“部件”對(duì)話框的“控件”選項(xiàng)卡,從列出來的控件列表中找到“MicrosoftCommonDialogControl6.0”選項(xiàng),在其前面的方框內(nèi)打上對(duì)勾選中。
9.1.1“文件”對(duì)話框
在通用對(duì)話框中,用于獲取文件的操作有兩種:打開文件和保存文件。分別使用ShowOpen方法或ShowSave方法顯示的“打開”文件對(duì)話框和“另存為”文件對(duì)話框。盡管作用不一樣,但其外觀及其屬性基本一致,與熟悉的Word界面的“打開”文件對(duì)話框或“另存為”文件對(duì)話框的外觀和作用類似。
通用對(duì)話框僅用于應(yīng)用程序與用戶之間的信息交互,是輸入輸出界面,不能實(shí)現(xiàn)打開文件、存儲(chǔ)文件以及其他具體的操作,如果需要實(shí)現(xiàn)相關(guān)的操作功能還需要編輯程序代碼來實(shí)現(xiàn)。9.1.1“文件”對(duì)話框?qū)傩浴皩傩源翱凇睂傩怨δ軐?duì)話框標(biāo)題DialogTitle用來給出對(duì)話框的標(biāo)題內(nèi)容,默認(rèn)值為“打開”。文件名稱FileName設(shè)置和返回選中的文件名初始化路徑InitDir用來設(shè)置和返回選中的目錄名,默認(rèn)值是當(dāng)前目錄過濾器Fileter用來設(shè)置顯示的文件類型,如文本文件(*.txt)標(biāo)志Flags用來設(shè)置對(duì)話框的一些選項(xiàng)缺省擴(kuò)展名DefaultExt用來顯示在對(duì)話框的默認(rèn)擴(kuò)展名,即指定默認(rèn)的文件類型文件最大長(zhǎng)度MaxFileSize用來指定FileName的最大長(zhǎng)度,默認(rèn)值為256過濾器索引FilterIndex用來指定在對(duì)話框的“文件類型”列表中顯示的默認(rèn)過濾符取消引發(fā)錯(cuò)誤CanceError用來設(shè)置選擇“取消”按鈕時(shí),是否產(chǎn)生錯(cuò)誤信息“打開\另存為”選項(xiàng)卡設(shè)置屬性9.1.1“文件”對(duì)話框1.“打開”對(duì)話框“打開”對(duì)話框主要是應(yīng)用程序打開文件操作,即在使用應(yīng)用程序的過程中,要調(diào)用或使用某個(gè)文件時(shí)需要調(diào)用的對(duì)話框。9.1.1“文件”對(duì)話框9.1.1“文件”對(duì)話框【例9.1】設(shè)計(jì)一個(gè)應(yīng)用程序。在運(yùn)行時(shí)單擊“打開”按鈕顯示“打開”對(duì)話框,可選擇相應(yīng)的文件,將選中的文件內(nèi)容顯示在窗體中相對(duì)應(yīng)的控件中。具體屬性設(shè)置:參見書上表9-49.1.1“文件”對(duì)話框PrivateSubcmdOpen_Click()Dimfilestr,filestr1AsStringcdlOpen.Action=1'設(shè)置通用對(duì)話框?yàn)椤按蜷_”對(duì)話框filestr=""'字符串變量,用于讀取文件
OpencdlOpen.FileNameForInputAs#1'讀取文件
DoWhileNotEOF(1)'從文件中逐個(gè)讀出,并存入到FileStr中
LineInput#1,filestr1filestr=filestr+filestr1LooptxtWrite.Text=filestr'將文件內(nèi)容顯示在文本框中
Close#1EndSub9.1.1“文件”對(duì)話框9.1.1“文件”對(duì)話框2.“另存為”對(duì)話框建立“另存為”對(duì)話框的過程和建立“打開”對(duì)話框的過程大致相同。用于提供應(yīng)用程序保存文件操作時(shí)彈出所使用對(duì)話框?!纠?.2】在例9.1的基礎(chǔ)上,增加一個(gè)“保存”命令按鈕,實(shí)現(xiàn)打開“保存”對(duì)話框的操作。
9.1.1“文件”對(duì)話框PrivateSubcmdSave_Click()cdlSave.ShowSave'設(shè)置通用對(duì)話框?yàn)椤氨4妗睂?duì)話框cdlSave.DialogTitle="保存文件"cdlSave.Filter="AllFiles|*.*|文本文件(*.txt)|*.txt|工程文件(*.vbp)|*.vbp"cdlSave.FilterIndex=2cdlSave.InitDir="C:\Window"OpencdlSave.FileNameForOutputAs#1Print#1,txtWrite.Text'將文本框中的內(nèi)容另存
Close#1EndSub9.1.1“文件”對(duì)話框9.1.2“打印”對(duì)話框
當(dāng)通用對(duì)話框的Action屬性值為5或者使用ShowPrinter方法時(shí),通用對(duì)話框作為“打印”對(duì)話框使用?!按蛴 睂?duì)話框?yàn)橛脩籼峁?biāo)準(zhǔn)的打印對(duì)話窗口界面,并不能處理打印工作,只是一個(gè)提供用戶選擇打印參數(shù)的界面。所選參數(shù)存在與各屬性中,由程序代碼來處理打印操作。
9.1.2“打印”對(duì)話框【例9.3】給例9.1中的應(yīng)用程序添加打印設(shè)置功能。
在原窗體的基礎(chǔ)上添加一個(gè)命令按鈕控件Command3,其名稱為“cmdPrint”,Caption屬性為“打印”;添加一個(gè)通用對(duì)話框控件,其名稱為“cdlPrint”。程序執(zhí)行界面如圖9-7所示。9.1.2“打印”對(duì)話框9.1.2“打印”對(duì)話框Privatesubcmdprint_click() DimIASInteger cdlPrint.Flags=&H256 cdlPrint.ShowPrinter Fori=1TocdlPrint.Copies Printer.printtxtWrite.text Nexti Printer.EndDOCEndSub9.1.2“打印”對(duì)話框9.1.3“字體”對(duì)話框
當(dāng)通用對(duì)話框的Action屬性值為4調(diào)用ShowFont方法時(shí),通用對(duì)話框作為“字體”對(duì)話框,該對(duì)話框列出了系統(tǒng)中可使用的字體列表及可定制的屬性,例如大小,樣式等供用戶選擇。9.1.3“字體”對(duì)話框“字體”對(duì)話框的主要屬性有:(1)Flags屬性。在顯示“字體”對(duì)話框之前必須設(shè)置Flags屬性,否則將發(fā)生不存在字體的錯(cuò)誤,F(xiàn)lags屬性參見下表9-5所示:常數(shù)cdlCFEffects不能單獨(dú)使用,應(yīng)與其他常數(shù)一起進(jìn)行“or”運(yùn)算使用,因?yàn)樗淖饔脙H僅是在對(duì)話框上附加刪除線和下劃線復(fù)選框以及顏色組合框。9.1.3“字體”對(duì)話框表9-5Flags主要控件屬性設(shè)置常數(shù)值描述CdlCFSreenFonts&H1只列出系統(tǒng)支持的屏幕字體CdlCFBoth&H3列出可用的打印機(jī)和屏幕字體。CdlCFHelpButton&H4顯示幫助按鈕CdlCFEffects&H100制定對(duì)話框允許刪除線,下劃線,以及顏色效果CdlCFApply&H200使用對(duì)話框的“應(yīng)用”按鈕有效CdlCF&H2000只能在由Min和Max屬性規(guī)定的范圍內(nèi)選擇字體大小CdlCFTTonly&H4000只允許選擇TrueType型字體9.1.3“字體”對(duì)話框【例9.4】建立一個(gè)應(yīng)用程序,將通用對(duì)話框控件設(shè)定為“字體”對(duì)話框。并在執(zhí)行后,單擊窗體上的“字體”按鈕,設(shè)置文本框的字體。主要控件屬性設(shè)置對(duì)象屬性屬性值功能TextBox(名稱)Text1顯示內(nèi)容Text送別山中相送罷,暮色掩柴扉。春草年年綠,王孫歸不歸MultiLineTrueCommonButton(名稱)cmdZt打開“字體”對(duì)話框Caption字體CommonButton(名稱)cmdTc關(guān)閉Caption退出CommonDialog(名稱)cdlZt字體對(duì)話框9.1.3“字體”對(duì)話框
“字體”命令按鈕的Click事件代碼編寫如下:PrivateSubcmdZt_Click()cdlZt.Flags=cdlCFBothOrcdlCFEffectscdlZt.ShowFontText1.FontBold=cdlZt.FontBoldText1.FontItalic=cdlZt.FontItalicText1.FontSize=cdlZt.FontSizeText1.ForeColor=cdlZt.ColorText1.FontStrikethru=cdlZt.FontStrikethruText1.FontUnderline=cdlZt.FontUnderlineEndSub9.1.3“字體”對(duì)話框9.2菜單設(shè)計(jì)
菜單是Windows應(yīng)用程序不可缺少的一個(gè)組成部分,使用它創(chuàng)建的用戶界面更加友好、直觀。在Windows應(yīng)用程序中,菜單一般用來表示程序的各項(xiàng)命令,把程序所提供的各種命令按功能分類,功能類似的命令放在同一個(gè)子菜單中,功能相距較遠(yuǎn)的命令放在不同的子菜單中,這樣組成一個(gè)個(gè)子菜單,并用菜單欄中的各項(xiàng)來代表它們,構(gòu)成了整個(gè)菜單系統(tǒng),用來實(shí)現(xiàn)各種操作。菜單具有很強(qiáng)的適應(yīng)性。9.2菜單設(shè)計(jì)菜單具有多種不同的形式,一般標(biāo)準(zhǔn)菜單系統(tǒng)分為4個(gè)部分組成:(1)菜單欄:指位于窗口標(biāo)題欄下方包含若干個(gè)菜單標(biāo)題的水平矩形條狀區(qū)域。(2)菜單標(biāo)題:指菜單欄中菜單的名稱。每個(gè)菜單標(biāo)題標(biāo)識(shí)了一個(gè)下拉列表。(3)菜單項(xiàng):包含于菜單之中的各個(gè)選項(xiàng),當(dāng)選中了某個(gè)菜單項(xiàng)后,可能會(huì)執(zhí)行一條命令,也可能是執(zhí)行了一個(gè)過程或函數(shù),甚至可能彈出一個(gè)子菜單。(4)子菜單:是指激活一個(gè)帶有“”標(biāo)記的菜單選項(xiàng)打開后的列表,它由一系列菜單項(xiàng)構(gòu)成。9.2菜單設(shè)計(jì)
菜單編輯器并不在工具箱中出現(xiàn)。因此需要設(shè)計(jì)菜單的時(shí)候,首先應(yīng)該把要編輯菜單欄的窗體作為當(dāng)前活動(dòng)窗口。然后調(diào)用“菜單編輯器”。
調(diào)用方法為:?jiǎn)螕艄ぞ邫谥械摹安藛尉庉嫛卑粹o,會(huì)彈出“菜單編輯器”窗口。
9.2菜單設(shè)計(jì)9.2菜單設(shè)計(jì)(1)標(biāo)題(P):用來設(shè)置當(dāng)前菜單項(xiàng)的標(biāo)題。該標(biāo)題將在用戶建立的菜單欄中顯示出來,相當(dāng)于普通控件的Catpion屬性。如果需要使用某個(gè)字母作為該菜單項(xiàng)的快捷訪問鍵,在該字符前加上一個(gè)&符號(hào)。例如在標(biāo)題欄里有“打開(&F)”,則F是該菜單的熱鍵。如果要加入分隔條只需在標(biāo)題欄輸入“-”即可。(2)名稱(M):用來設(shè)置菜單項(xiàng)的名稱,該名稱用來在編寫代碼時(shí)作為引用菜單控件使用。在設(shè)計(jì)菜單過程中習(xí)慣上以“mnu”作為前綴,例如“文件”菜單可以是“mnuFile”。(3)索引(X):在菜單編輯器中,每個(gè)菜單項(xiàng)是一個(gè)控件,索引用來設(shè)置一組名稱統(tǒng)一卻擁有不同屬性的菜單控件數(shù)組的下標(biāo)。(4)快捷鍵(S):用于選擇當(dāng)前菜單項(xiàng)所需要的快捷鍵。(5)協(xié)調(diào)位置(O):設(shè)置菜單的顯示位置,可以從顯示的列表中選擇菜單是否出現(xiàn)或怎么出現(xiàn)。
9.2菜單設(shè)計(jì)(6)幫助上下文ID:通過輸入相應(yīng)的數(shù)字來選擇幫助文件中特定的頁數(shù)或與該菜單項(xiàng)上下文相關(guān)的幫助文件。(7)復(fù)選:用于設(shè)置當(dāng)前菜單項(xiàng)是否可選。如果可選,則當(dāng)前設(shè)計(jì)菜單前出現(xiàn)“√”,說明所設(shè)計(jì)的菜單實(shí)現(xiàn)了某項(xiàng)功能或某項(xiàng)操作?!皬?fù)選”在屬性窗口中對(duì)應(yīng)的屬性名稱為“Checked”屬性。當(dāng)Checked=True時(shí),設(shè)置當(dāng)前菜單已選。當(dāng)Checked=False時(shí),當(dāng)前菜單未選。(8)有效:設(shè)置當(dāng)前菜單項(xiàng)是否可以執(zhí)行,即是否響應(yīng)某個(gè)事件。有效性也可用編寫代碼實(shí)現(xiàn),有效性的屬性為“Enabled”,其值有兩種。設(shè)置為True,即選中該屬性。則菜單項(xiàng)將對(duì)用戶的事件作出響應(yīng)。設(shè)置為False,即未選中該屬性。則菜單項(xiàng)不響應(yīng)用戶事件,同時(shí)菜單項(xiàng)為灰色。9.2菜單設(shè)計(jì)(9)可見:設(shè)置所設(shè)計(jì)的當(dāng)前菜單項(xiàng)是否可見,只有可見的菜單項(xiàng)才能執(zhí)行。在編寫代碼時(shí),用“Visible”表示可見屬性,其值有“True”和“False”兩種。設(shè)置為True(默認(rèn)值)時(shí),則該菜單項(xiàng)可見。設(shè)置為False時(shí),則該菜單項(xiàng)不可見。當(dāng)一個(gè)菜單控件不可見時(shí),菜單中的其余控件會(huì)上移以填補(bǔ)空出菜單的空間。(10)顯示窗口列表:設(shè)置在使用多文檔程序時(shí),是否使菜單項(xiàng)中有一個(gè)包含打開的多文檔文件子窗口的列表框。只針對(duì)于多文檔窗體(MDI),對(duì)普通窗體沒有作用。9.2菜單設(shè)計(jì)【例9.5】建立一個(gè)有簡(jiǎn)單菜單功能的文本編輯器。9.2菜單設(shè)計(jì)菜單屬性設(shè)置菜單項(xiàng)標(biāo)題名稱內(nèi)縮符號(hào)說明1文件(&E)mnuFile熱鍵【E】2新建mnuFileNew…..快捷鍵【Ctrl+N】3打開mnuFileOpen…..快捷鍵【Ctrl+O】4-mnuBar1…..分割符5保存mnuFileSave…..6另存為mnuFilsSaveAs…..7-mnubar2…..分割符8退出mnuExit…..9編輯(&F)mnuEdit熱鍵【F】10復(fù)制mnuEditCopy…..快捷鍵【Ctrl+C】11剪切mnuEditCut…..快捷鍵【Ctrl+X】12粘貼mnuEditPaste…..快捷鍵【Ctrl+V】9.2菜單設(shè)計(jì)“文件”菜單中的“打開”菜單項(xiàng)的Click事件代碼如下:PrivateSubmnuFileOpen_Click()cdlLialog1.InitDir="C:\Windows"cdlLialog1.Filter="文本文件|*.Txt"cdlialog1.CancelError=Truecdlialog1.ShowOpentxtWrite.Text=""OpenCommonDialog1.FileNameForInputAs#1'打開文件進(jìn)行讀操作
DoWhileNotEOF(1)LineInput#1,inputdata'讀一行數(shù)據(jù)到變量inputdatatxtWrite.Text=txtWrite.Text&inputdata&vbCrLfLoopClose#1'關(guān)閉文件
ExitSubEndSub9.2.2動(dòng)態(tài)菜單
在應(yīng)用程序中,菜單的作用可以因執(zhí)行條件的變化而相應(yīng)地發(fā)生一些變化,例如顯示菜單可見或不可見、菜單項(xiàng)是否有效、菜單項(xiàng)是否復(fù)選以及動(dòng)態(tài)增刪菜單項(xiàng)。我們稱能夠?qū)崿F(xiàn)以上動(dòng)態(tài)操作的菜單為動(dòng)態(tài)菜單。使用菜單控件數(shù)組設(shè)計(jì)動(dòng)態(tài)菜單的方法如下:(1)在“菜單編輯器”對(duì)話框中,加入一個(gè)菜單項(xiàng),將其索引(Index)項(xiàng)屬性設(shè)置為0。然后在同一縮進(jìn)級(jí)上加入名稱相同、Index值有序相連的菜單項(xiàng)。Index屬性值確定了該菜單項(xiàng)在菜單控件數(shù)組中的位置。9.2.2動(dòng)態(tài)菜單(2)也可以只有一個(gè)Index值為0的菜單項(xiàng),在運(yùn)行時(shí),通過菜單項(xiàng)控件數(shù)組名和索引值使用Load方法來加如新的菜單項(xiàng),另外,使用Unload方法刪除菜單項(xiàng)。Load和Unload方法的格式如下:Load菜單項(xiàng)控件數(shù)組名(Index)Unload菜單項(xiàng)控件數(shù)組名(Index)9.2.2動(dòng)態(tài)菜單【例9.6】建立一個(gè)動(dòng)態(tài)實(shí)現(xiàn)菜單項(xiàng)增減的應(yīng)用程序。設(shè)有一個(gè)“文件”主菜單(mnuFile),它的菜單項(xiàng)有三項(xiàng):“新加菜單”(mnuNewList)、“退出”(mnuFileExit)和“分隔符”(mnuFilebar)。在窗體上有一個(gè)文本框(txtCaption)和兩個(gè)按鈕,當(dāng)單擊“添加”按鈕(cmdAdd)時(shí),“文件”菜單中添加一個(gè)名稱為文本框內(nèi)容的菜單項(xiàng);當(dāng)單擊“刪除”按鈕(cmdRemove)時(shí),“文件”菜單中刪除一個(gè)名稱為文本框內(nèi)容相同的菜單項(xiàng)。9.2.2動(dòng)態(tài)菜單主要代碼編輯如下:OptionExplicitPrivatemax_indexAsIntegerPrivateSubcmdAdd_Click()max_index=max_index+1LoadmnuFileList(max_index)mnuFileList(max_index).Caption=TxtCaption.TextmnuFileList(max_index).Visible=TrueTxtCaption.Text=""mnuFilebar.Visible=TrueEndSub9.2.2動(dòng)態(tài)菜單PrivateSubcmdRemove_Click()DimtxtAsStringDimctlAsMenutxt=TxtCaption.TextTxtCaption.Text=""ForEachctlInmnuFileListIfctl.Caption=txtThenUnloadctlNextctlIfmnuFileList.Count<2ThenmnuFilebar.Visible=FalseEndifEndSub9.2.2動(dòng)態(tài)菜單PrivateSubmnuFileExit_Click()UnloadMeEndSubPrivateSubmnuFileList_Click(IndexAsInteger)MsgBox"Selecteditem"&Str$(Index)EndSub9.2.3彈出菜單
在Windows應(yīng)用程序中,選中某個(gè)對(duì)象單擊鼠標(biāo)右鍵時(shí),會(huì)出現(xiàn)一個(gè)包含該對(duì)象常用功能的彈出式菜單,從而是用戶的操作更加便捷,這種菜單形式被稱為快捷菜單或者彈出菜單。彈出菜單往往是獨(dú)立于菜單欄而顯示在窗體上任何一個(gè)地方的浮動(dòng)菜單。彈出菜單上顯示的內(nèi)容取決于按下鼠標(biāo)右鍵時(shí)光標(biāo)所在的位置。9.2.3彈出菜單【例9.7】設(shè)計(jì)一個(gè)彈出菜單,當(dāng)用戶用鼠標(biāo)右鍵單擊窗體時(shí),彈出已經(jīng)創(chuàng)建的菜單。方法如下所述:(1)在“菜單編輯器”中,設(shè)計(jì)一個(gè)沒有縮進(jìn)的菜單項(xiàng)(最高級(jí)別),由于彈出菜單的最高級(jí)別菜單項(xiàng)名稱不顯示,所以可以任意設(shè)定,在這里將其設(shè)置為mnuEdit。(2)將上述建立的最高級(jí)別菜單項(xiàng)的“可見”(Visible)屬性為False,以便程序運(yùn)行時(shí)不顯示這個(gè)菜單項(xiàng)。(3)根據(jù)菜單編輯器的使用方法,依次在該菜單項(xiàng)后輸入彈出菜單中的各個(gè)菜單項(xiàng)。程序設(shè)計(jì)步驟:9.2.3彈出菜單例9.7彈出菜單屬性設(shè)置標(biāo)題名稱可見性內(nèi)縮符號(hào)字體格式mnuZtgsFlase下劃線mnuHxTrue….粗體mnuCtTrue…斜體mnuXtTrue…退出mnuTcTrue…9.2.3彈出菜單9.2.3彈出菜單編寫代碼,實(shí)現(xiàn)彈出菜單的功能:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2Then'鼠標(biāo)單擊右鍵
PopupMenumnuZtgsEndIfEndSub9.3多重窗體此前,我們所設(shè)計(jì)的VB應(yīng)用程序大都只包含一個(gè)窗體,但是在一個(gè)大型的應(yīng)用程序中,如果只有一個(gè)窗體,就會(huì)顯得十分單調(diào)、并且一個(gè)窗體往往不能滿足設(shè)計(jì)應(yīng)用的需要,嚴(yán)重影響整個(gè)程序的運(yùn)行。基于這個(gè)問題,在VisualBasic設(shè)計(jì)過程中,就需要用到多個(gè)窗體配合使用,才能使設(shè)計(jì)的應(yīng)用程序具有更完善的功能。多重窗體和多文檔界面(MDI窗體)在結(jié)構(gòu)上有很大的不同。多重窗體中各個(gè)窗體之間是彼此獨(dú)立的,每個(gè)窗體可以有自己的運(yùn)行界面和執(zhí)行代碼,以完成不同的功能;MDI窗體也可以含有多個(gè)窗體,但是它有一個(gè)父窗體,其他窗體都是父窗體的子窗體,它們之間不是獨(dú)立的,子窗體完成的功能都一樣。9.3.1多重窗體操作1.添加普通新窗體2.刪除一個(gè)普通新窗體3.在多個(gè)窗體中切換4.與多重窗體程序設(shè)計(jì)有關(guān)的語句和方法9.4鍵盤與鼠標(biāo)事件過程
對(duì)象的很多事件是由鍵盤觸發(fā)的,常用的鍵盤事件有KeyDown事件、KeyUp事件和KeyPress事件。9.4.1KeyDown事件、KeyUp事件這兩個(gè)事件是當(dāng)一個(gè)對(duì)象具有焦點(diǎn)時(shí),用戶按下或松開按鍵時(shí)發(fā)生的。事件過程的語法為:PrivateSubObject_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrivateSubObject_KeyUp(KeyCodeAsInteger,ShiftAsInteger)其中:Object是窗體或控件對(duì)象名。KeyCode是一個(gè)整型參數(shù),表示按鍵的代碼。鍵盤上字母與數(shù)字鍵的鍵代碼與其ASCII碼是相同的。Shift參數(shù):此參數(shù)也是一個(gè)整數(shù),它表明在這個(gè)鼠標(biāo)事件發(fā)生時(shí),鍵盤上的哪一個(gè)控制鍵被按下。
9.4鍵盤與鼠標(biāo)事件過程Shift參數(shù)值對(duì)應(yīng)表Shift的值被按下的鍵1Shift2Ctrl4Alt9.4鍵盤與鼠標(biāo)事件過程下面的情況不會(huì)產(chǎn)生KeyDown和KeyUp事件:(1)窗體上有一個(gè)Default屬性設(shè)置為True的按鈕控件時(shí),按Enter鍵。(2)當(dāng)窗體上有一個(gè)Cancel屬性設(shè)置為True的按鈕控件時(shí),按Esc鍵。(3)窗體上有多個(gè)可擁有焦點(diǎn)的控件時(shí),按下Tab鍵。9.4.2Keypress事件
當(dāng)按了鍵盤上的一個(gè)可打印字符鍵(字母、數(shù)字和符號(hào))時(shí),觸發(fā)此事件。事件過程的語法是:PrivateSubObject_KeyPress(KeyAsciiAsInteger)Object是指窗體或控件名。整型參數(shù)KeyAscii傳遞的是按鍵字符的ASCII碼。KeyDown事件、KeyPress事件和KeyUp事件產(chǎn)生的順序是:KeyDown,KeyPress,最后是KeyUp。9.4.2Keypress事件【例9.11】下面是文本框Text1的事件屬性,它能阻止用戶在這個(gè)文本框中輸入除了數(shù)字(0~9)之外的任何其它字符。PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48OrKeyAscii>57ThenKeyAscii=0EndIfEndSub其中48是字符“0”的ASCII碼,57是字符“9”的ASCII碼。9.4.3鼠標(biāo)事件
前面的章節(jié)中講到過窗體與各種控件的Click事件和DblClick事件。這兩個(gè)事件沒有參數(shù),當(dāng)程序在處理這兩個(gè)事件時(shí),不能確定用戶是在對(duì)象的什么位置上單擊的鼠標(biāo),也不能確定用戶單擊的是鼠標(biāo)上的哪一個(gè)鍵,更不能確定在單擊鼠標(biāo)時(shí)是否按下了鍵盤上的某個(gè)控制鍵(如Ctrl、Shift和Alt鍵)。如果要在程序中得知上面所述各種狀態(tài),就要處理下面的三個(gè)鼠標(biāo)事件。1.MouseDown事件、MouseUp事件、MouseMove事件
當(dāng)用戶在對(duì)象上按下鼠標(biāo)鍵時(shí)觸發(fā)MouseDown事件。事件過程的語法為:PrivateSubObject-MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YASsingle)當(dāng)用戶在對(duì)象上釋放鼠標(biāo)鍵時(shí)引發(fā)MouseUp事件。事件過程的語法為:PrivateSubObject-MouseUp(ButtonASInteger,ShiftAsInteger,XASsingle,YAsSingle)當(dāng)用戶在對(duì)象上移動(dòng)鼠標(biāo)時(shí)引發(fā)MouseMove事件。事件過程的語法為PrivateSubObject-MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAssinglel)1.MouseDown事件、MouseUp事件、MouseMove事件Button參數(shù)值是一個(gè)整型數(shù),參數(shù)的值反映事件發(fā)生時(shí)按下的是哪個(gè)鼠標(biāo)鍵。Button參數(shù)值對(duì)應(yīng)表參數(shù)值鼠標(biāo)按鍵1左
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新保潔流程構(gòu)建智慧校園環(huán)境
- 2024年度大學(xué)特聘教授學(xué)術(shù)成果發(fā)布合同3篇
- 2024年中秋月餅禮盒銷售與消費(fèi)者滿意度提升合同2篇
- 2024年照明工程照明效果評(píng)估與優(yōu)化合同3篇
- 辦公環(huán)境中的德育教育與心理輔導(dǎo)
- 2025中國石油大慶油田限責(zé)任公司高校畢業(yè)生招聘430人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電力科學(xué)研究院限公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信江西公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國法學(xué)會(huì)所屬事業(yè)單位公開招聘第二次補(bǔ)充高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國中化控股限責(zé)任公司校園招聘2959人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《朝花夕拾》閱讀推進(jìn)課 教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文七年級(jí)下冊(cè)
- 人工智能在礦產(chǎn)勘探中的應(yīng)用分析篇
- 2024山東省招聘社區(qū)工作者試題及答案
- DL∕T 5494-2014 電力工程場(chǎng)地地震安全性評(píng)價(jià)規(guī)程
- 宋代學(xué)者邵康節(jié)名著《漁樵問答》譯文
- 公園設(shè)施維修投標(biāo)方案
- 土木工程材料智慧樹知到期末考試答案章節(jié)答案2024年山東建筑大學(xué)
- 社會(huì)工作行政復(fù)習(xí)題
- 培訓(xùn)市場(chǎng)調(diào)查分析報(bào)告
- 物業(yè)小區(qū)安全生產(chǎn)隱患排查治理表
- 公路法知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論