已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VB程序設(shè)計(jì)教程,主講老師:韓維良,2005.3,第十章,鍵盤(pán)與鼠標(biāo) 事件過(guò)程,第一節(jié) KeyPress事件 針對(duì)鍵盤(pán)的事件,主要是以下三種: KeyDown、KeyUp事件:按鍵的按下/放開(kāi)事件。 KeyPress事件:按鍵事件。 用戶按下任一鍵則引發(fā)KeyDown事件,松開(kāi)則引發(fā)KeyUp事件。用戶按下并釋放按鍵,便引發(fā)KeyPress事件。,在用鍵盤(pán)輸入的場(chǎng)合,如在文本框中輸入信息,KeyPress 事件常用于判斷按了什么鍵,當(dāng)在鍵盤(pán)上按鍵時(shí)將觸發(fā)該事件。 每按一次鍵,擁有輸入焦點(diǎn)的控件都會(huì)發(fā)生這個(gè)事件,可以用其檢測(cè)如輸入密碼時(shí)字符的合法性等。 某一時(shí)刻,只有一個(gè)控件擁有輸入焦點(diǎn),如果窗體上沒(méi)有活動(dòng)的或可見(jiàn)的控件,則輸入焦點(diǎn)位于窗體上。,能響應(yīng)KeyPress事件的控件有:窗體、復(fù)選框、組合框、命令按鈕、列表框、圖片框、文本框、滾動(dòng)條及與文件有關(guān)的控件。 要用法如:對(duì)輸入的信息進(jìn)行合法性檢測(cè),前面講過(guò)的口令文本框中只允許輸入數(shù)字字符,輸入其它字符則響呤,并取消輸入的字符。又如小寫(xiě)換大寫(xiě)。 例如,如果希望將文本框中的所有字符都強(qiáng)制轉(zhuǎn)換為大寫(xiě)字符,則可在輸入時(shí)使用此事件轉(zhuǎn)換大小寫(xiě):,Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(Ucase(Chr(KeyAscii) End Sub,第二節(jié) KeyDown和KeyUP事件 keydown按下事件、keyup彈起事件過(guò)程的形式為: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) End Sub,1、Keycode 返回的是用戶所按鍵的ASC碼;大小寫(xiě)字母用同一個(gè)按鍵,其ASC碼為大寫(xiě)字母的ASC碼;單鍵雙字符鍵中,返回的是其下檔字符的ASC碼。另外,大鍵盤(pán)上的數(shù)字鍵與小鍵盤(pán)上的數(shù)字鍵不同。 如按下“A”、“a”則返回的Keycode均為65(即&H41)。,2、Shift Shift用于返回用戶在按鍵時(shí),是否按下shift、ctrl或Alt鍵構(gòu)成組合狀態(tài)。,一般情況下,在程序中,通過(guò)判斷Keycode和Shift兩個(gè)參數(shù)的值,來(lái)確定用戶按了什么鍵。 如下:當(dāng)用戶按下某個(gè)鍵時(shí),在標(biāo)簽中顯示出對(duì)應(yīng)的字符,當(dāng)放開(kāi)按鍵時(shí),消失。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Label1.Caption = Str(KeyCode) + “-“ + Chr(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Label1.Caption = “ End Sub,對(duì)于組合鍵,對(duì)多種可能的情況都要一一判斷: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case Shift Case 0 X$ = “按下“ Case 1 X$ = “按下Shift“ Case 2 X$ = “按下Ctrl“ Case 3 X$ = “按下Shift、Ctrl“,Case 4 X$ = “按下Alt“ Case 5 X$ = “按下Shift、Alt“ Case 6 X$ = “按下Ctrl、Alt“ Case 7 X$ = “按下Shift、Ctrl、Alt“ End Select Label1.Caption = X + “-“ + Str(KeyCode) + “-“ + Chr(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Label1.Caption = “ End Sub,第三節(jié) 鼠標(biāo)事件 前面所學(xué)的鼠標(biāo)事件主要是: Click事件:以鼠標(biāo)左鍵單擊對(duì)象時(shí)所引發(fā)的事件。 另外與此比較相近的還有DblClick事件:以鼠標(biāo)左鍵單擊對(duì)象時(shí)所引發(fā)的事件。,1、MouseDown事件 將鼠標(biāo)指針置于對(duì)象上,按下某一鍵時(shí)被觸發(fā)。 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,2、MouseUp事件 釋放所按的鍵時(shí)被觸發(fā)。 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub 與MouseDown成對(duì)出現(xiàn)(按下了才會(huì)有釋放),當(dāng)按下鍵,則觸發(fā)MouseDown,當(dāng)釋放鍵時(shí),觸發(fā)MouseUp。,3、MouseMove事件 將鼠標(biāo)指針置于對(duì)象上,將鼠標(biāo)指針移動(dòng)時(shí)被觸發(fā)。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,Button:用來(lái)判斷按下的是鼠標(biāo)的哪一個(gè)鍵。 Shift:判斷是否按下shift、ctrl或Alt鍵構(gòu)成組合狀態(tài)。 X和Y:返回指針?biāo)诘奈恢谩?Button返回的值, Shift的返回值,上面的兩個(gè)參數(shù)表中,各返回值實(shí)際上就是三位二進(jìn)制數(shù)的不同組合。 例:鼠標(biāo)點(diǎn)那兒,對(duì)象移動(dòng)到那兒。 建立一個(gè)窗體,上面有一個(gè)按鈕。 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.Move X, Y End Sub 類似于射擊游戲。,第四節(jié) 鼠標(biāo)指針的形狀 鼠標(biāo)指針的形狀用于反映系統(tǒng)當(dāng)前所處的狀態(tài),在Windows系統(tǒng)中,是很重要的環(huán)節(jié); 在不同的環(huán)境中,顯示成不同的形狀,便于用戶識(shí)別。 最基本的如:指向超鏈接時(shí)變成手形。,鼠標(biāo)指針位于某個(gè)對(duì)象上時(shí),其形狀由對(duì)象的MousePointer屬性來(lái)設(shè)置。一般情況下,Windows默認(rèn)地對(duì)不同的控件設(shè)置了不同的形狀,如窗體上,朝左傾斜的箭頭,在文本框中為插入點(diǎn)形狀等。 如果要改變默認(rèn)的形狀,則可以通過(guò)設(shè)置對(duì)象的MousePointer屬性來(lái)實(shí)現(xiàn)。,默認(rèn)情況下是0,由系統(tǒng)設(shè)置的默認(rèn)值決定形狀,99時(shí),鼠標(biāo)指針的形狀由MouseIcon屬性設(shè)置鼠標(biāo)指針的形狀,由用戶自行設(shè)置。 具體設(shè)置時(shí),一方面,可以在屬性窗口中設(shè)置,還可以在程序代碼中設(shè)置。 當(dāng)用戶設(shè)置特殊的鼠標(biāo)形狀時(shí),需要以Icon圖形的形式指定鼠標(biāo)指針的形狀。,第五節(jié) 拖 放 在設(shè)計(jì) Visual Basic 應(yīng)用程序時(shí)可能經(jīng)常要在窗體上拖動(dòng)控件。Visual Basic的拖放功能使用戶在程序運(yùn)行時(shí)也能具有這種能力。 拖動(dòng)是指將鼠標(biāo)指針指向某個(gè)控件,按下左鍵并移動(dòng)至目的地后釋放,全過(guò)程經(jīng)歷MouseDown、MouseMove和MouseUp等三個(gè)事件。 為有效地對(duì)拖放進(jìn)行響應(yīng),VB提供了兩個(gè)專門(mén)事件。,一、與拖放有關(guān)的屬性、事件和方法 1、屬性 DragMode:設(shè)置控件的拖動(dòng)方式。 0手式拖動(dòng) 1自動(dòng)拖動(dòng) DragIcon:指定拖動(dòng)控件時(shí)顯示的圖標(biāo)。 在拖動(dòng)的過(guò)程中,被拖動(dòng)的控件本身并沒(méi)有動(dòng),為形象地表示拖動(dòng)的過(guò)程,需要指定一個(gè)圖標(biāo);并控件本身位置的改變必須通過(guò)程序代碼來(lái)設(shè)置。,2、事件 為準(zhǔn)確地理解拖放,有兩個(gè)重要術(shù)語(yǔ):源和目標(biāo)。 源:被拖動(dòng)的控件。 此控件是 menu、timer、line 或 shape 外的任一對(duì)象。 目標(biāo):其上放控件的對(duì)象。 此對(duì)象可為窗體或控件,能識(shí)別 DragDrop 事件。,DragDrop:鼠標(biāo)指針指向源控件,按下左鍵并移動(dòng)至目的地后釋放時(shí),目標(biāo)對(duì)象將產(chǎn)生DragDrop事件。 事件過(guò)程的框架如下: Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) End Sub,source參數(shù): 指被拖動(dòng)的控件。 X,Y:指拖動(dòng)的目的地坐標(biāo)。即拖動(dòng)到什么位置。,DragOver:在拖動(dòng)源對(duì)象的過(guò)程中,目標(biāo)對(duì)象將產(chǎn)生DragOver事件。 Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) End Sub X,Y:移動(dòng)過(guò)程中,鼠標(biāo)指針當(dāng)前所在的位置;移到那兒,X,Y指那兒,State:用于指出源與目標(biāo)對(duì)象的關(guān)系。 0源對(duì)象正地進(jìn)入目標(biāo)對(duì)象中。 1源對(duì)象正地退出目標(biāo)對(duì)象。 2源對(duì)象正位于目標(biāo)對(duì)象中。,3、方法 Drag用于啟動(dòng)或停止手工拖動(dòng)。與DragMode屬性的值無(wú)關(guān)。 0取消指定控件的拖動(dòng)操作。 1開(kāi)始拖動(dòng)操作,允許拖放指定的控件。 2結(jié)束拖動(dòng)操作。,二、自動(dòng)拖放 設(shè)置自動(dòng)拖放屬性后,即可進(jìn)行拖放操作,同時(shí)可在目標(biāo)對(duì)象的拖放事件中對(duì)拖動(dòng)作出響應(yīng)。 如:在窗體上有兩個(gè)圖片框Picture1、picture2。 分別設(shè)置DragMode、DragIcon屬性。 當(dāng)拖動(dòng)這兩個(gè)圖片框時(shí),在窗體的DragDrop事件過(guò)程中作出響應(yīng)。,Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y End Sub 也可以將DragDrop將改為DragOver,體驗(yàn)DragOver事件的響應(yīng)。 Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) Source.Move X, Y End Sub,三、手工拖放 將DragMode設(shè)置為0。此時(shí)進(jìn)行拖動(dòng),必須借助于MouseDown、MouseUp事件在按下鼠標(biāo)時(shí),用Drag方法打開(kāi)拖動(dòng)開(kāi)關(guān),釋放鼠標(biāo)時(shí),關(guān)閉拖動(dòng)開(kāi)關(guān)。 Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Pict
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)老機(jī)構(gòu)蟲(chóng)鼠害防治與老人健康保障合同4篇
- 2025年度智能機(jī)器人研發(fā)項(xiàng)目代理采購(gòu)合同4篇
- 2025年度餐飲加盟店選址與評(píng)估咨詢合同3篇
- 二零二五年度通訊工程破樁勞務(wù)分包合同3篇
- 二零二五年度高新技術(shù)成果轉(zhuǎn)化合同模板3篇
- 2025年度智能打包機(jī)研發(fā)與生產(chǎn)合同3篇
- 2025版智慧醫(yī)療項(xiàng)目投資股東協(xié)議3篇
- 科技產(chǎn)品開(kāi)發(fā)中的創(chuàng)新思維應(yīng)用
- 2025年度金融科技公司Oracle金融科技平臺(tái)定制合同3篇
- 2025年度智能停車(chē)解決方案車(chē)位銷(xiāo)售與服務(wù)協(xié)議4篇
- 醫(yī)院三基考核試題(康復(fù)理療科)
- 2024-2030年中國(guó)招標(biāo)代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫(kù)500題(含答案)
- 基因突變和基因重組(第1課時(shí))高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級(jí)):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂(lè)劇好看智慧樹(shù)知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 案卷評(píng)查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級(jí)數(shù)學(xué)上冊(cè)期末試卷及答案
- 人教版初中英語(yǔ)七八九全部單詞(打印版)
- 波浪理論要點(diǎn)圖解完美版
評(píng)論
0/150
提交評(píng)論