第十二章鍵盤和鼠標事件_第1頁
第十二章鍵盤和鼠標事件_第2頁
第十二章鍵盤和鼠標事件_第3頁
第十二章鍵盤和鼠標事件_第4頁
第十二章鍵盤和鼠標事件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Visual Basic程序設計教學課件程序設計教學課件 1. 理解鼠標、鍵盤事件的觸發(fā)機制。理解鼠標、鍵盤事件的觸發(fā)機制。 2. 掌握鼠標的掌握鼠標的MouseDown, MouseMove, MouseUp事件中各參數(shù)的含義及編程控制。事件中各參數(shù)的含義及編程控制。 3. 掌握鍵盤的掌握鍵盤的KeyDown, KeyPress, KeyUp 事件中各事件中各參數(shù)的含義及編程控制參數(shù)的含義及編程控制 4. 了解事件驅動的拖放和了解事件驅動的拖放和 OLE 的拖放。的拖放。本章要求:本章要求:第第12章章 鍵盤與鼠標事件過程鍵盤與鼠標事件過程本章重點:本章重點:本章難點:本章難點:理解鼠標、鍵

2、盤事件的觸發(fā)機制運用理解鼠標、鍵盤事件的觸發(fā)機制運用事件驅動的拖放和事件驅動的拖放和 OLE 的拖放的拖放Visual Basic程序設計教學課件程序設計教學課件 12.1 鍵盤事件 在在Visual Basic中,提供中,提供KeyPress、KeyDown、KeyUp三種三種鍵盤事件,窗體和接受鍵盤輸入的控件都識別這三種事件。鍵盤事件,窗體和接受鍵盤輸入的控件都識別這三種事件。 KeyPress 按下對應某按下對應某ASCII 字符的鍵。字符的鍵。 KeyDown 按下鍵盤的任意鍵。按下鍵盤的任意鍵。 KeyUp 釋放鍵盤的任意鍵只有獲得焦點的對象才能夠接釋放鍵盤的任意鍵只有獲得焦點的對象

3、才能夠接受鍵盤事件。受鍵盤事件。 12.1.1 KeyPress 事件事件在按下與在按下與ASCII字符對應的鍵時將觸發(fā)字符對應的鍵時將觸發(fā)KeyPress 事件。事件。 Visual Basic程序設計教學課件程序設計教學課件 KeyPress 事件過程的語法格式是:事件過程的語法格式是:其中:其中: 例如,如果希望將文本框中的所有字符都強制轉換為大寫例如,如果希望將文本框中的所有字符都強制轉換為大寫字符,則可在輸入時使用此事件轉換大小寫:字符,則可在輸入時使用此事件轉換大小寫:Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii

4、 = Asc(Ucase(Chr(KeyAscii)End Sub Object是指窗體或控件對象名,是指窗體或控件對象名,KeyAscii 參數(shù)返回對應參數(shù)返回對應于于ASCII字符代碼的整型數(shù)值。字符代碼的整型數(shù)值。 12.1 鍵盤事件Visual Basic程序設計教學課件程序設計教學課件 例例12.1 12.1 通過編程序,在一個文本框(通過編程序,在一個文本框(Text1Text1)中限定只能)中限定只能輸入數(shù)字、小數(shù)點,只能響應輸入數(shù)字、小數(shù)點,只能響應BackSpaceBackSpace 鍵及回車鍵。鍵及回車鍵。Private Sub Text1_KeyPress (KeyAsc

5、ii As Integer) Select Case KeyAscii Case 48 to 57,46,8,13 Case Else KeyAscii=0 End SelectEnd Sub KeyPress 事件只識別事件只識別 Enter、Tab和和Backspace 鍵。不能鍵。不能夠檢測其它功能鍵、編輯鍵和定位鍵。夠檢測其它功能鍵、編輯鍵和定位鍵。 12.1 鍵盤事件Visual Basic程序設計教學課件程序設計教學課件 12.1.2 KeyDown 和和 KeyUp 事件事件 當一個對象具有焦點時按下(當一個對象具有焦點時按下(KeyDown) 或松開或松開 ( KeyUp )

6、一個鍵時發(fā)生。它們報告鍵盤本身準確的物理狀一個鍵時發(fā)生。它們報告鍵盤本身準確的物理狀態(tài):按下鍵態(tài):按下鍵 (KeyDown) 及松開鍵及松開鍵 (KeyUp)。 KeyDown和和KeyUp事件能夠檢測其它功能鍵、編輯鍵和定事件能夠檢測其它功能鍵、編輯鍵和定位鍵。位鍵。KeyUp 和和 KeyDown 事件過程的語法格式如下:事件過程的語法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)說明:說明:1Keycode

7、 參數(shù)表示按下的物理鍵。上檔鍵字符和下檔鍵參數(shù)表示按下的物理鍵。上檔鍵字符和下檔鍵字符也是使用同一鍵,它們的字符也是使用同一鍵,它們的Keycode值相同。值相同。 Visual Basic程序設計教學課件程序設計教學課件 keycode 參數(shù)通過參數(shù)通過 ASCII 值或鍵代碼常數(shù)來識別鍵。字值或鍵代碼常數(shù)來識別鍵。字母鍵的鍵代碼與此字母的大寫字符的母鍵的鍵代碼與此字母的大寫字符的 ASCII 值相同。所以值相同。所以 A 和和 a 的的 keycode 都是由都是由 Asc(A) 返回的數(shù)值。在下返回的數(shù)值。在下例中用例中用 KeyDown 事件判斷是否按下了事件判斷是否按下了 A 鍵:鍵

8、:12.1 鍵盤事件Visual Basic程序設計教學課件程序設計教學課件 Private Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKeyA Then MsgBox You pressed the A key.“ End ifEnd SubPrivate Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKey1 And shift=1 Then MsgBox You pressed the

9、! key.“ End ifEnd Sub12.1 鍵盤事件Visual Basic程序設計教學課件程序設計教學課件 2shift參數(shù)參數(shù)shift表示是在該事件發(fā)生時響應表示是在該事件發(fā)生時響應SHIFT、CTRL 和和 ALT 鍵鍵的狀態(tài),它是一個整數(shù)。其含義與上一節(jié)中的狀態(tài),它是一個整數(shù)。其含義與上一節(jié)中MouseMove、MouseDown、MouseUp事件中的事件中的shift參數(shù)完全相同。參數(shù)完全相同。例如:下例是用例如:下例是用Shift參數(shù)判斷是否按下了字母的大寫形式。參數(shù)判斷是否按下了字母的大寫形式。Private Sub Text1_KeyDown(KeyCode As

10、Integer, Shift As Integer) If KeyCode = vbKeyA And Shift = 1 Then MsgBox “你按了大寫字母你按了大寫字母A鍵鍵.End ifEnd Sub12.1 鍵盤事件Visual Basic程序設計教學課件程序設計教學課件 思考題:思考題: 編寫一個在文本框(編寫一個在文本框(Text1)中操作,能夠響應鍵)中操作,能夠響應鍵盤組合操作的程序,用戶所作的每一步操作都將在標簽框盤組合操作的程序,用戶所作的每一步操作都將在標簽框(Label1)中顯示出相關信息。)中顯示出相關信息。12.1 鍵盤事件Visual Basic程序設計教學課

11、件程序設計教學課件 12.2 鼠標事件鼠標事件 大多數(shù)控件能夠識別鼠標的大多數(shù)控件能夠識別鼠標的MouseMove、MouseDown和和MouseUp事件,通過響應這些鼠標事件,能在應用程序對鼠事件,通過響應這些鼠標事件,能在應用程序對鼠標位置及狀態(tài)的變化作出響應操作。標位置及狀態(tài)的變化作出響應操作。MouseMove 每當鼠標指針移動到屏幕新位置時發(fā)生每當鼠標指針移動到屏幕新位置時發(fā)生MouseDown 按下任意鼠標鍵按鈕時發(fā)生按下任意鼠標鍵按鈕時發(fā)生MouseUp 釋放任意鼠標鍵按鈕時發(fā)生釋放任意鼠標鍵按鈕時發(fā)生12.2.1 鼠標事件過程鼠標事件過程Visual Basic程序設計教學課

12、件程序設計教學課件 MouseMove、MouseDown、MouseUp三個事件的過程的語三個事件的過程的語法格式如下:法格式如下:Sub Object_MouseMove(Button As Integer,Shift As Integer,_ X As Single,Y As Single)Sub Object _MouseDown(Button As Integer,Shift As Integer,_ X As Single,Y As Single)Sub Object _MouseUp(Button As Integer,Shift As Integer,_ X As Single

13、,Y As Single) 其中:其中:1Object是可選的一個對象表達式,可以是窗體對象和大多是可選的一個對象表達式,可以是窗體對象和大多數(shù)可視控件。數(shù)可視控件。 2Button參數(shù)是表示按下或松開鼠標哪個按鈕,參數(shù)是表示按下或松開鼠標哪個按鈕, 12.2 鼠標事件鼠標事件Visual Basic程序設計教學課件程序設計教學課件 參數(shù)參數(shù)Button值值參數(shù)(參數(shù)(Button)值值 說明說明vbLeftButton 1左按鈕被按下左按鈕被按下vbRightButton 2右按鈕被按下右按鈕被按下vbMiddleButton 4中間按鈕被按下中間按鈕被按下 12.2 鼠標事件鼠標事件Vis

14、ual Basic程序設計教學課件程序設計教學課件 參數(shù)參數(shù)Shift值值參數(shù)(參數(shù)(Shift) 值值 描述描述vbShiftMask 1SHIFT 鍵被按下鍵被按下vbCtrlMask 2CTRL 鍵被按下鍵被按下vbAltMask 4ALT 鍵被按下鍵被按下 3通過通過Shift參數(shù)表示在參數(shù)表示在Button參數(shù)指定的按鈕被按下參數(shù)指定的按鈕被按下或者被松開的情況下鍵盤的或者被松開的情況下鍵盤的Shift、Ctrl和和Alt鍵的狀態(tài),鍵的狀態(tài), 12.2 鼠標事件鼠標事件Visual Basic程序設計教學課件程序設計教學課件 Ctrl、Shift、Alt三鍵組合使用情況如表三鍵組合使

15、用情況如表12112.2 鼠標事件鼠標事件Visual Basic程序設計教學課件程序設計教學課件 4. 參數(shù)參數(shù)X、Y X, Y鼠標指針的位置,通過鼠標指針的位置,通過X和和Y參數(shù)返回一個指定鼠參數(shù)返回一個指定鼠標指針當前位置的數(shù),標指針當前位置的數(shù),X和和Y的值是使用該對象的坐標系統(tǒng)的值是使用該對象的坐標系統(tǒng)表示鼠標指針當前位置。表示鼠標指針當前位置。 注意:注意: 鼠標事件被用來識別和響應各種鼠標狀態(tài),并把這些狀鼠標事件被用來識別和響應各種鼠標狀態(tài),并把這些狀態(tài)看作獨立的事件,在按下鼠標按鈕并釋放時,態(tài)看作獨立的事件,在按下鼠標按鈕并釋放時,Click 事件事件只能把此過程識別為一個單一

16、的單擊操作。鼠標事件能夠區(qū)只能把此過程識別為一個單一的單擊操作。鼠標事件能夠區(qū)分各鼠標按鈕及鍵盤的分各鼠標按鈕及鍵盤的SHIFT、CTRL、ALT 鍵的狀態(tài)。鍵的狀態(tài)。例題:例題:使用使用MouseUp 與與 MouseDown 和和MouseMove 事件,事件,編寫一個在窗體上用鼠標繪圖的簡單程序。編寫一個在窗體上用鼠標繪圖的簡單程序。 12.1 鼠標事件鼠標事件Visual Basic程序設計教學課件程序設計教學課件 12.3.1 控件控件 拖拖 放放 (簡略介紹,一般不作要求) 在運行時拖動控件,通常情況下并不能自動改變控件位置,在運行時拖動控件,通常情況下并不能自動改變控件位置,這就

17、必須使用這就必須使用Visual Basic的拖放功能,通過編程,才能實的拖放功能,通過編程,才能實現(xiàn)在運行時拖動控件并改變其位置。把按下鼠標按鈕并移動現(xiàn)在運行時拖動控件并改變其位置。把按下鼠標按鈕并移動控件的操作稱為控件的操作稱為拖動拖動,把釋放按鈕的操作稱為,把釋放按鈕的操作稱為放下放下。12.3 拖放操作拖放操作Visual Basic程序設計教學課件程序設計教學課件 在運行時間拖放鼠標觸發(fā)DragDrop事件。源和目標:源和目標:l源:指被拖放的控件(不包括Menu、Timer、 Line和Shape控件)。l目標:指在其上放置控件的對象,可以是窗體或 控件。注意:注意:執(zhí)行拖放操作引

18、發(fā)的是目標對象目標對象的 DragDrop事件。 Private Sub Form_DragDrop(Source As Control, x As Single,y As Single) Private Sub 對象名對象名_DragDrop(index As Integer,Source As Control,x As Single,y As Single)Visual Basic程序設計教學課件程序設計教學課件 index:唯一標識控件數(shù)組中的控件。Source:被拖放的控件。x,y:鼠標在目標對象中的位置坐標。過程名中的Form或對象名即為目標對象。(為了在運行時間實現(xiàn)拖動)lDragMode屬性: 源控件源控件 DragMode屬性設置 為1,表示自動模式。(缺省值為0: 手工模式)lDragIcon屬性:設置拖放顯示的圖標。Visual Basic程序設計教學課件程序設計教學課件 當用戶用鼠標拖動源對象經(jīng)過目標對象時, 無論鼠標是否釋放,都會引發(fā)目標對象的 DragOver事件。(源對象的DragMode=1) Private Sub Form_DragOver(Source As Control, x As Single,y As Single,state

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論