




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
鍵盤與鼠標事件操作教學目標掌握鍵盤基本操作。掌握鼠標基本操作。
KeyPress事件用戶按下并且釋放一個能夠產(chǎn)生ASCII碼的鍵時,觸發(fā)該事件。
KeyDown事件用戶按下鍵盤上任意一個鍵時,觸發(fā)該事件。
KeyUp事件用戶釋放鍵盤上任意一個鍵時,觸發(fā)該事件。鍵盤操作KeyPress事件
當壓下鍵盤上的某個鍵時,將觸發(fā)KeyPress事件。該事件可以作用于窗體、復選框、組合框、命令按鈕、列表框、圖片框、文本框、滾動條及與文件有關的控件。嚴格地說,當按下某個鍵時,所觸發(fā)的是擁有輸入焦點(Focus)的那個控件KeyPress的事件。在某一時刻,輸入焦點只能位于某一控件,如果窗體上沒有活動的或可見的控件,則輸入焦點位于窗體。當一個控件或窗體擁有輸入焦點時,該控件或窗體將接收從鍵盤上輸入的信息。例如,假定一個文本框擁有輸入焦點,則從鍵盤上輸入的任何字符都將在該文本框中顯示。語法格式為:
PrivateSub對象名_KeyPress(KeyAsciiAsInteger)
EndSub
KeyPress事件帶有一個參數(shù),這個參數(shù)有兩種形式。第一種形式是IndexAsInteger,只用于控件數(shù)組;第二種形式是KeyAsciiAsInteger,用于單個控件。上面列出的是第二種形式。KeyPress事件用來識別所按字母的ASCII碼。參數(shù)KeyAscii是一個預定義的變量,執(zhí)行KeyPress事件過程時,KeyAscii是所按字母的ASCII碼。例如,按下字母“A”鍵,KeyAscii的值為65;如果按下字母“a”鍵,則KeyPress的值為97,等等。說明:①可以檢測到字母、數(shù)字和標點符號,且能夠區(qū)分大小寫字母;②能夠識別<Enter>鍵,<Tab>鍵和退格鍵;③不能識別光標移動鍵,編輯鍵和其它功能鍵.例:在窗體上建立了一個文本框(Text1),無論輸入的是大寫還是小寫,在Text1內(nèi)都強制顯示為小寫字母。編寫如下事件過程:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii>=65andKeyAscii<=90Then
KeyAscii=KeyAscii+32EndIf
EndSub
例:下面的代碼是強制用戶在成績錄入窗體里只能輸入數(shù)值,如果輸入非數(shù)值字符則鳴笛報錯,編寫如下事件過程:
PrivateSubForm_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48OrKeyAscii>57Then
KeyAscii=0BeepEndIf
EndSub
該過程用來控制輸入值,它只允許輸入0(ASCII碼48)~9(ASCII碼57)的阿拉伯數(shù)字。如果輸入其他字符,則響鈴(Beep),并消除該字符。在默認情況下,控件的鍵盤事件優(yōu)先于窗體的鍵盤事件,因此在發(fā)生鍵盤事件時,總是先激活控件的鍵盤事件。如果希望窗體先接收鍵盤事件,則必須把窗體的KeyPreview屬性設置為True,否則不能激活窗體的鍵盤事件。這里所說的鍵盤事件包括KeyPress、KeyDown和KeyUp。KeyDown
和KeyUp事件
和KeyPress事件不同,KeyDown和KeyUp事件返回的是鍵盤的直接狀態(tài),而Keypress并不反映鍵盤的直接狀態(tài)。換言之,KeyDown和KeyUp事件返回的是“鍵”,而KeyPress事件返回的是“字符”的Ascii碼。例如,當按字母鍵“A”時,KeyDown所得到的KeyCode碼(KeyDown事件的參數(shù))與按字母鍵“a”是相同的,而對Keypress來說,所得到的Ascii碼不一樣。
KeyDown和KeyUp事件都有兩個參數(shù),即KeyCode和Shift,語法格式為:
PrivateSub對象名_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
EndSubPrivateSub對象名_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
EndSub說明:1)KeyCode
它是按鍵的實際Ascii碼。該碼以“鍵”為準。也就是說,大寫字母與小寫字母使用同一個鍵,它們的KeyCode相同(使用大寫字母的Ascii碼)。但大鍵盤上的數(shù)字鍵與數(shù)字鍵盤上相同的數(shù)字鍵的KeyCode是不一樣的。對于有上檔字符和下檔字符的鍵,其KeyCode為下檔字符的Ascii碼。2)Shift
轉(zhuǎn)換鍵。它指的是3個轉(zhuǎn)換鍵的狀態(tài),即:Shift、Ctrl和Alt,這3個鍵分別以二進制形式表示,每個鍵有3位,即Shift鍵為001,Ctrl鍵為010,Alt鍵為100。當按下Shift鍵時,Shift參數(shù)的值為001(十進制數(shù)1);當按下Ctrl鍵時,Shift參數(shù)的值為010(十進制數(shù)2);而按下Alt鍵時,Shift參數(shù)的值為100(十進制數(shù)4)。如果同時按下兩個或3個轉(zhuǎn)換鍵,則Shift參數(shù)的值為上述兩者或三者之和。故,Shift參數(shù)共可取8種值,見下表:十進制二進制按下按鈕0000無1001Shift2010Ctrl3011Shift+Ctrl4100Alt5101Alt+Shift6110Alt+Ctrl7111Alt+Shift+Ctrl
MouseMove事件用戶在窗體或控件上移動鼠標指針時觸發(fā)該事件。
MouseDown事件用戶按下鼠標按鈕時,觸發(fā)該事件。
MouseUp事件用戶釋放按下的鼠標按鈕時,觸發(fā)該事件。鼠標操作語法格式為:
Sub對象名_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
EndSub
Sub對象名_MouseUp(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
EndSub
Sub對象名_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
EndSubButton參數(shù)和Shift參數(shù)分別是三位二進制整數(shù):Button參數(shù):
=1,表示鼠標左鍵觸發(fā)了事件
=2,表示鼠標右鍵觸發(fā)了事件
=4,表示鼠標中間鍵觸發(fā)了事件左右中XXXShift參數(shù):
=1,表示Shift鍵被按下
=2,表示Ctrl
鍵被按下
=4,表示Alt
鍵被按下
例:Shift鍵和Ctrl鍵同時被按下,Shift參數(shù)的值=3ShiftCtrlAltXXXx、y:鼠標光標的當前位置。例:利用鼠標隨手繪圖。要求當按鼠標左鍵拖動時隨手畫線,當按鼠標右鍵拖動時隨手畫圓。編寫如下事件過程:Dimcenterx%,centery%,r%Dimstartx%,starty%
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)IfButton=1then
startx=X:starty=Y
ElseifButton=2then
centerx=X:centery=YEndIf
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)IfButton=1thenLine(startx,starty)-(X,Y)
startx=X:starty=YEndIf
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)IfButton=2thenr=sqr((centerx-X)^2+(centery-Y)^2)
Circle(centerx,centery)EndIf
EndSub拖放
通俗地說,所謂拖放,就是用鼠標從屏幕上把一個對象從一個地方“拖拉”到另一個地方再放下。在Windows中,我們曾多次使用過這一操作,VisualBasic提供了讓用戶自由拖放某個控件的功能。拖放的一般過程是,把鼠標光標移到一個控件對象上,按下鼠標鍵,不要松開,然后移動鼠標,對象將隨鼠標的移動而在屏幕上拖動,松開鼠標鍵后,對象即被放下。通常把原來位置的對象叫做源對象,而拖動后放下的位置的對象叫做目標對象。在拖動的過程中,被拖動的對象變?yōu)榛疑?.與拖放有關的屬性、事件和方法除了菜單、計時器和通用對話框外,其它控件均可在程序運行期間被拖放。下面介紹與拖放有關的屬性、事件和方法。1)屬性有兩個屬性與拖放有關,即DragMode和DragIcon。(1)DragMode屬性該屬性用來設置自動或人工(手動)拖放模式。在默認情況下,該屬性值為0(人工方式)。為了能對一個控件執(zhí)行自動拖放操作,必須把它的DragMode屬性設置為1。該屬性可以在屬性窗口中設置,也可以在程序代碼中設置,例如:Picture1.DragMode=1如果把一個對象的DragMode屬性設置為1,則該對象不再接收Click事件和MouseDown事件。(2)DragIcon屬性在拖動一個對象的過程中,并不是對象本身在移動,而是移動代表對象的圖標。也就是說,一旦要拖動一個控件,這個控件就變成一個圖標,等放下后再恢復成原來的控件。DragIcon屬性含有一個圖片或圖標的文件名,在拖動時作為控件的圖標。例如:Picture1.DragIcon=LoadPicture(“c:\vb98\graphics\icons\computer\disk06.ico”)
用圖標文件“disk06.ico”作為圖片框Picture1的DragIcon屬性。當拖動該圖片框時,圖片框變成由disk06.ico所表示的圖標。2)事件與拖放有關的事件是DragDrop和DragOver。當把控件(圖標)拖到目標之后,如果松開鼠標鍵,則產(chǎn)生一個DragDrop事件。該事件的事件過程格式如下:Sub對象名_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
EndSub
該事件過程含有3個參數(shù)。其中Source是一個對象變量,其類型為Control,該參數(shù)含有被拖動對象的屬性。參數(shù)X、Y是松開鼠標鍵放下對象時鼠標光標的位置。
DragOver事件用于圖標的移動。當拖動對象越過一個控件時,產(chǎn)生DragOver事件。其事件過程格式如下:Sub對象名_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsInteger)
EndSub
該事件過程有4個參數(shù),其中Source參數(shù)的含義同前,X、Y是拖動時鼠標光標的坐標位置。State參數(shù)是一個整數(shù)值,可以取以下3個值:0——鼠標光標正進入目標對象的區(qū)域;1——鼠標光標正退出目標對象的區(qū)域;2——鼠標光標正位于目標對象的區(qū)域之內(nèi)。3)方法與拖放有關的方法有Move和Drag。其中Move方法已比較熟悉,下
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《麥克利夫綜合癥》課件
- (3)-專題17 梳理說明順序(講義)
- 《理論探討》課件
- 貫徹領導力提升組織效能講義
- 南方科技大學《影視創(chuàng)作實踐》2023-2024學年第二學期期末試卷
- 昆明藝術職業(yè)學院《建筑歷史與文化》2023-2024學年第二學期期末試卷
- 山東省博興縣2024-2025學年高三下4月模擬考試語文試題含解析
- 西北政法大學《市政工程估價課程設計》2023-2024學年第一學期期末試卷
- 瑪納斯縣2025屆三年級數(shù)學第二學期期末經(jīng)典試題含解析
- 烏魯木齊職業(yè)大學《GMDSS英語聽力與會話》2023-2024學年第一學期期末試卷
- Q∕GDW 12154-2021 電力安全工器具試驗檢測中心建設規(guī)范
- 第四章 金融監(jiān)管(商業(yè)銀行管理-復旦大學)
- 初中文言文專項訓練十篇(含答案)
- 中波發(fā)射臺搬遷建設及地網(wǎng)鋪設、機房設備的安裝與調(diào)整實踐
- 煤礦頂板事故防治(1)
- 影像診斷學-—-總論PPT課件
- 漏電保護器試跳記錄表
- (完整word版)古籍樣式排版模板
- 調(diào)Q技術與鎖模技術(課堂PPT)
- 快速制作會議座次表、會場座位安排
- 公司財務報表模板(word版本)
評論
0/150
提交評論