vb6 常用事件

36
VB6 常常常常

Upload: cruz-raymond

Post on 02-Jan-2016

40 views

Category:

Documents


1 download

DESCRIPTION

VB6 常用事件. 鍵盤事件. 鍵盤介紹 主要資訊輸入的來源 鍵盤排列方式的由來 標準的打字機鍵盤(稱為 QWERTY ,係因上排的字母順序得名)的字鍵配置,相信您也發現了它的設計並不理想,一些常用的文字(英文字母)分派給最弱且最慢的手指,常見的文字組合又交由同一隻手在執行,在在減緩了打字員的敲鍵率。 為何設計者要設計這麼笨的鍵盤呢?其實他一點也不笨,因為, QWERTY 鍵盤的設計事實上就是要減緩打字員的速度,當時機械式的打字機其機構運作的速度跟不上人們的敲字速度,常會發生卡鍵的問題, QWERTY 鍵盤減慢了打字的速度,也因此降低了卡鍵的頻率。. 鍵盤事件 ( 續 ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: VB6  常用事件

VB6 常用事件

Page 2: VB6  常用事件

鍵盤事件鍵盤介紹

主要資訊輸入的來源鍵盤排列方式的由來• 標準的打字機鍵盤(稱為 QWERTY ,係因上排的字母順序得名)的字鍵配置,相信您也發現了它的設計並不理想,一些常用的文字(英文字母)分派給最弱且最慢的手指,常見的文字組合又交由同一隻手在執行,在在減緩了打字員的敲鍵率。

• 為何設計者要設計這麼笨的鍵盤呢?其實他一點也不笨,因為, QWERTY 鍵盤的設計事實上就是要減緩打字員的速度,當時機械式的打字機其機構運作的速度跟不上人們的敲字速度,常會發生卡鍵的問題, QWERTY 鍵盤減慢了打字的速度,也因此降低了卡鍵的頻率。

Page 3: VB6  常用事件

鍵盤事件 ( 續 )VB 常用的鍵盤事件 (keyboard Events)

KeyPress•在指定物件上收到由鍵盤按鍵的字元。僅能回應按鍵動作,無法判斷目前按鍵是否按住或放開

KeyDown•在指定物件上測到鍵盤有鍵被按住

KeyUp•在指定物件上測到鍵盤被按住的鍵已放開

Page 4: VB6  常用事件

鍵盤事件 ( 續 )KeyPress

當有按下鍵盤的動作產生時,就會觸發 KeyPress 與 KeyDown 事件,放開鍵盤後處發 KeyUp 事件,但是,按下的鍵若是具有 KeyAscii 碼的按鍵,KeyPress 事件才會有效合法的 KeyAscii 按鍵可印出的鍵盤字元 字元的 ASCII 碼Ctrl+A 到 Ctrl+Z 1~26Enter 與 Ctrl+Enter 13 與 10BackSpace 與 Ctrl+BackSpace 8 與 127Tab 9

Page 5: VB6  常用事件

美國標準交換碼 (ASCII)

Page 6: VB6  常用事件

美國標準交換碼 (ASCII)

Page 7: VB6  常用事件

鍵盤事件 ( 續 )KeyDown 、 KeyUp

可以使用 KeyDown 和 KeyUP 事件程序來處理 KeyPress 無法辨識的按鍵訊息,例如:功能鍵 (F1 到 F12) 、編輯鍵 ( INSERT 、 DELETE 或 BACKSPACE) 、巡覽鍵,以及組合鍵等。與 KeyDown 和 KeyUp 事件不同的是, KeyPress 不顯示鍵盤的實際狀態,而只是傳遞一個字元。

Page 8: VB6  常用事件

鍵盤事件 ( 續 )Change

指示一個控制項的內容已經改變。此事件是如何及何時發生的,則隨控制項的不同而有所差異:

ComboBox - 改變控制項的文字方塊部分的文字。該事件僅在 Style 屬性設定為 0 (Dropdown Combo) 或 1 (Simple Combo) 以及當文字被改變,或者藉程式碼改變了 Text 屬性設定時才會發生。DirListBox - 改變所選擇的目錄。該事件發生在按兩下新目錄,或以程式碼改變 Path 屬性設定時。DriveListBox - 改變所選擇的磁碟機。該事件發生在選擇了新磁碟機,或以程式碼改變 Drive 屬性設定時。HScrollBar 和 VScrollBar ( 水平和垂直捲軸 ) - 移動捲軸的捲動方塊部份。該事件發生在捲動或以程式碼改變 Value 屬性設定時。Label - 改變 Label 的內容。該事件發生在 DDE 連結更新資料,或以程式碼改變 Caption 屬性設定時。PictureBox - 改變 PictureBox 的內容。該事件發生在 DDE 連結更新資料,或以程式碼改變 Picture 屬性設定時。TextBox - 改變文字方塊的內容。該事件發生在 DDE 連結更新資料、使用者改變文字,或以程式碼改變 Text 屬性設定時。

Page 9: VB6  常用事件

牛刀小試 (1)設計一程式,模擬電子看板,當按下‘ a’ 鍵時,看板向左移動;按下‘ d’ 鍵時,看板向右移動;按下‘ s’ 鍵時,看板停止移動;按下‘ q’ 鍵時結束程式執行

Page 10: VB6  常用事件

牛刀小試 (1)--- 續

Label *2

Timer *1

Page 11: VB6  常用事件

牛刀小試 (1)--- 續屬性設定

Label (Label1~2)•Caption

– Label1 :歡迎蒞臨空軍防警司令部– Label2 :‘ a’ 左移 ‘ d’ 右移 ‘ s’ 停止 ‘ q’ 結束

•Font– Label1 :標楷體 18號字加粗– Label2 :新細明體 14號字

•ForeColor : Label1藍色Timer (Timer1)• Interval : 0

Page 12: VB6  常用事件

牛刀小試 (1)--- 續

A 65 a97D 68 d 100S 83 s 115Q 81 q 113

當按下按鍵 a 或 A 時,令 Label1 的 Tag屬性為 1 ,每 0.1秒執行 Timer1 一次當按下按鍵 d 或 D 時,令 Label1 的 Tag屬性為 2 ,每 0.1秒執行 Timer1 一次當按下按鍵 s 或 S 時,令 Timer1 的Interval 屬性為 0當按下按鍵 q 或 Q 時,停止程式執行假如 Label1 的 Tag 屬性為 1 時, Label1向左移動 30 點 (Twips) ,假如 Label1的 Tag 屬性為 2 時, Label1 向右移動 30點 (Twips) ,

Page 13: VB6  常用事件

牛刀小試 (2)設計一程式,當按下方向鍵左鍵 () 時,人物圖形向左邊行進,當按下右鍵 () 時,人物圖形向右邊行進,當按下向下鍵 () 時,人物圖形向前方行進,按下向上鍵時 () 時,人物圖形向後方行進,當按下 s 鍵時,停止行進,當按下 Esc 鍵時,結束程式執行

Page 14: VB6  常用事件

牛刀小試 (2)--- 續PictureBox *1

Timer *1

Page 15: VB6  常用事件

牛刀小試 (2)--- 續屬性設定

Form (Form1)•KeyPreview : True•BackColor :白色

PictureBox (Picture1)•AutoSize : True•BackColor :白色•BorderStyle : 0-沒有框線

Timer (Timer1)• Interval : 250

Page 16: VB6  常用事件

牛刀小試 (2)--- 續準備圖案

stand.bmp

front1.bmp front2.bmp back1.bmp back2.bmp left1.bmp left2.bmp right1.bmp right2.bmp

實際我只畫了五張圖案,其餘的都是使用左右反向的方法所建立的

Page 17: VB6  常用事件

牛刀小試 (2)--- 續宣告兩個全域變數 ttt( 用以紀錄所按的方向鍵 ) 與g( 用以進行圖片切換 )

當按下左方向鍵 (37) 時,令 ttt=1(代表按下左鍵 ) ,圖片從Left1.bmp 開始顯示,並啟動計時器 Timer1當按下上方向鍵 (38) 時,令 ttt=2(代表按下上鍵 ) ,圖片從back1.bmp 開始顯示,並啟動計時器 Timer1當按下左方向鍵 (39) 時,令 ttt=3(代表按下右鍵 ) ,圖片從right1.bmp 開始顯示,並啟動計時器 Timer1當按下左方向鍵 (40) 時,令 ttt=4(代表按下下鍵 ) ,圖片從front1.bmp 開始顯示,並啟動計時器 Timer1當按下 Esc(27) 時結束程式執行,當按下 s 鍵 (83) 時,停止計時器的作動,並令 Picture1 顯示 stand.bmp

程式開始執行先令 Picture1 顯示 stand.bmp 的圖案

Page 18: VB6  常用事件

牛刀小試 (2)--- 續

當 ttt=1 時 ( 向左 ) ,圖案輪流顯示 left1.bmp 與 left2.bmp ,並令圖案向左移動 50 點 (twips) ,當 ttt=2 時 ( 向上 ) ,圖案輪流顯示back1.bmp與 back2.bmp ,並令圖案向上移動 50 點 (twips) ,當 ttt=3 時 ( 向右 ) ,圖案輪流顯示 right1.bmp 與 right2.bmp ,並令圖案向右移動 50 點 (twips) ,當 ttt=4 時 ( 向下 ) ,圖案輪流顯示 front1.bmp與 front2.bmp ,並令圖案向下移動 50 點 (twips)

g 限定在 1 與2 之間切換

Page 19: VB6  常用事件

牛刀小試 (3)設計一程式,模擬電動玩具中彈珠台的發球動作 ( 按下向下箭號拉竿,放掉向下箭號,將球送出去 )

Page 20: VB6  常用事件

牛刀小試 (3)--- 續

Shape *2

Timer *1

Page 21: VB6  常用事件

牛刀小試 (3)--- 續屬性設定

Form1 :• ScaleMode : 3-像素

Shape (Shape1~2)• FillColor

– Shape1 :紅色– Shape2 :藍色

• FillStyle : 0- 實心• Top

– Shape1 : 264– Shape2 : 216

Timer (Timer1)• Enabled : False• Interval : 10

Page 22: VB6  常用事件

牛刀小試 (3)--- 續

當按下向下箭號時, Shape1 與 Shape2同時向下移動,直到 Shape1 的 Top 屬性等於328為止當放開向下箭號時, Shape1 與 Shape2同時回到原位,並啟動計時器 Timer1當 Shape2未到達上邊界時, Shape2 的 Top 屬性,每次減少 2 個像素 (Pixels) ,直到 Shape2 的 Top 屬性小於等於 1 時,停止計時器 Timer1 的作動

Page 23: VB6  常用事件

駐點事件SetFocus將駐點移至指定的控制項或表單駐點• 在 Microsoft Windows 環境中,在同一時間只能有一個視窗、表單或控制項能有此功能。一個物件如具有駐點,通常會以反白標題或標題列來表示。使用者或應用程式皆可設定駐點。

GotFocus當駐點 (focus) 移入物件或子控制項時,發生該事件

LostFocus發生在物件失去駐點時,失去駐點可能由於使用者的動作,如定位到或按一下另一個物件,或者是在程式碼中使用 SetFocus 方法改變駐點

Page 24: VB6  常用事件

牛刀小試 (4)設計一程式,用以計算學科成績,程式一執行時,控制權 (駐點 ) 交給第一科的文字盒,同時令文字盒顏色為黃色,每輸入一科按下 Enter後,控制權交給下一個文字盒,前一個文字盒還原為白色,擁有控制權的文字盒顏色為黃色,直到全輸入完,按下計算後,顯示總分與平均,同時顯示及格或不及格的警語

Page 25: VB6  常用事件

牛刀小試 (4)--- 續TextBox *7

Label *8

CommandButton *3

Page 26: VB6  常用事件

牛刀小試 (4)--- 續屬性設定• Label (Label1(0)~(6) 、 Label2)

– Caption– Label1(0)~(6) :依圖中方式設定– Label2 :清空

– Font :新細明體 16號字• TextBox (Text1(0)~(4) 、 Text2(0)~(1))

– Text :清空– Font :新細明體 16號字

• CommandButton (Command1~3)– Caption

– Command1 :計算– Command2 :重算– Command3 :離開

– Font :新細明體 16號字

Page 27: VB6  常用事件

牛刀小試 (4)--- 續當按下離開鍵時,詢問是否離開

當文字盒掌握了控制權,則令文字盒的背景色為黃色

當文字盒釋放了控制權,則令文字盒的背景色為黃白色

當文字盒輸入內容並按下 Enter 鍵後,將控制權交付下一個文字盒

Page 28: VB6  常用事件

牛刀小試 (4)--- 續當按下計算鍵時,依序將 Text1(0)~(4) 的值累計並指派給 ssum 變數於 Text2(0) 顯示 ssum值於 Text2(1) 顯示 ssum/5 的值假如平均 (ssum/5)大於等於 60 則於 Label2顯示「表現不錯呦 !!」否則顯示「你要加油了 !!」

當按下重算鍵時,依序將 Text1(0)~(4) 與的 Text2(0)~(1) 的 Text 屬性、 Label2 的Caption 屬性值清空,並將控制權交給Text1(0)

Page 29: VB6  常用事件

滑鼠事件Click

此事件是發生在按下一個物件,並接著放開滑鼠鍵時。DblClick

當在一個物件上快速連按兩次滑鼠左鍵時,該事件發生。MouseDown

此事件是發生在按下一個物件時。MouseMove

此事件是發生在滑移過一個物件時。MouseUp

此事件是發生在放開滑鼠鍵時。

Page 30: VB6  常用事件

滑鼠事件 ( 續 )DragDrop

該事件發生在完成一個拖放動作 ( 就是將一個控制項拖曳到一個物件上,並釋放滑鼠鍵 ) ;或使用 Drag 方法,且其 action 參數設定為 2 (Drop) 時。

DragOver它發生在拖放動作進行時。可使用此事件對滑鼠指標在一個有效目標上的進入、離開或停留等進行監視。滑鼠指標的位置將決定接收此事件的目標物件。

Page 31: VB6  常用事件

牛刀小試 (5)設計一程式,將螢幕分割成兩半,右邊顯示十個巧虎圖案,左邊隨機產生 1~10之間的整數值,用滑鼠將右邊的圖案以滑鼠拖曳至左邊,當按下確定鍵後,若數量與數值相同時,顯示「好厲害」的警語,否則顯示「加油喔」

Page 32: VB6  常用事件

牛刀小試 (5)--- 續PictureBox *10

Lable *1

CommandButton *3

Line *1

Page 33: VB6  常用事件

牛刀小試 (5)--- 續屬性設定•Form (Form1)

– ScaleMode : 3 – 像素– StartUpPosition : 2 – 螢幕中央

•PictureBox (Picture1(0)~(9))– DragMode : 1 – 自動– AutoSize : True

•CommandButton (Command1~3)– Caption :確定、重玩、離開– Font :新細明體 14號字

•Line

Page 34: VB6  常用事件

牛刀小試 (5)--- 續宣告公用變數 ccc 用以記錄搬移至左邊的個數

設定 ccc起始值為 0 ,並令 Picture1(0)~(9)載入圖片 stand.bmp ,且令其 Tag皆為 0(皆在右邊 ) ,以亂數取一介於 1~10之間的整數值

將移動的 PictureBox 定位於 X,Y 的位置 (滑鼠所在位置,PictureBox 的左上角定位點 ) ,假如 PictureBox過了中線且在左邊則 ccc加 1 , Tag 設為 1 ,若又移回了右邊則ccc減 1 , Tag 設回 0

Page 35: VB6  常用事件

牛刀小試 (5)--- 續

當按下了離開鍵則結束程式執行

當按下了確定鍵則比較 ccc 與電腦所產生的亂數值 (Label1 的 Caption) ,假如相同則顯示「你好厲害喔」否則顯示「要再加油喔」

當按下了重玩鍵時,重新將所有 Picture 以亂數佈置於螢幕右側,並令 Tag值為 0 , ccc 為 0 ,重新以亂數取介於 1~10之間的整數值為題目

Page 36: VB6  常用事件

本章結束 The End