I E= T*R
Giao tiếp với keyboard thông qua các đối tượng giao diện
Mặc dù có thểcó nhiều phần tửgiao diện cùngđược hiển thịtrên màn hình tại từng thởiđiểm nhưng chỉcó 1 phần tửgiao diệnđược giao tiếp với thiết bịI/O, ta gọi phần tửgiao diện này là 'active' hay được 'focus'.
Liên quanđến việcấn thả1 phím, VB sẽtạo ra 3 sự kiện sauđây và gởi vềcho phần tử được 'focus' hiện hành :
KeyDown : sự kiện xảy ra khi người sử dụng bấm (ấn xuống) bất kỳ một phím nào trên bàn phím.
KeyUp: sựkiện xảy ra khi người sửdụng thảphím vừaấn ra.
KeyPress: sựkiện xảy ra khi người sửdụngấn/thảbất kỳmột phím nào trên bàn phím mà tạo rađược 1 ký tựANSI.
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học Slide 246
Thủtục xửlý sự kiện KeyDown, KeyUp & KeyPress
Thủtục có dạng sau :
Private SubControlName_KeyDown (KeyCode as Integer, Shift as Integer).
vàPrivate SubControlName_KeyUp (KeyCode as Integer, Shift as Integer).
trongđó :
ControlNamelà tên củađiều khiển nhận sựkiện keydown/keyup.
KeyCode là mã "virtual code" của phímđượcấn/thả.
Shift là giá trị miêu tảtrạng tháiấn giữcác phímđiều khiển (là một dãy bit với bit 0 cho phím SHIFT, bit 1 cho phím CTRL, bit 2 cho phím ALT).
Thủtục KeyPress có dạng sau :
Private SubControlName_KeyPress (KeyAscii As Integer)
trongđó :
ControlNamelà tên củađiều khiển nhận sựkiện keypress.
KeyAscii là mã ký tựANSI của phímđượcấn/thả.
Mỗiđối tượng có thủtục xửlý biến cốriêng, thủtục này cũng là method củađối tượng tươngứng.
Chương 10: Tương tác giữa người dùng & chương trình
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học Slide 247
Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer) Dim ShiftDown, AltDown, CtrlDown, Txt
ShiftDown = (Shift And vbShiftMask) > 0 AltDown = (Shift And vbAltMask) > 0 CtrlDown = (Shift And vbCtrlMask) > 0
If KeyCode = vbKeyF2 Then ' Display key combinations. If ShiftDown And CtrlDown And AltDown Then
Txt = "SHIFT+CTRL+ALT+F2." ElseIf ShiftDown And AltDown Then
Txt = "SHIFT+ALT+F2."
ElseIf ShiftDown And CtrlDown Then Txt = "SHIFT+CTRL+F2." ElseIf CtrlDown And AltDown Then
Txt = "CTRL+ALT+F2." ElseIf ShiftDown Then
Txt = "SHIFT+F2." ElseIf CtrlDown Then Txt = "CTRL+F2." ElseIf AltDown Then Txt = "ALT+F2." ElseIf SHIFT = 0 Then
Txt = "F2." End If
Text1.Text = "You pressed " & Txt End If
End Sub
Thí dụ thủtục xử lý biến cố KeyDown của 1 textbox
Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM
Môn : Tin học Slide 248