Hỏi về sự kiện ListBox_keyup (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
PHP:
Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Shift = 2 Then Exit Sub
Select Case KeyCode
Case Is = 8 And Len(TextBox1) > 0
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
Case Is = 13
CommandButton2_Click
Case Is = 27
Unload Me
Case Is >= 44 'And Shift = 0
'MsgBox KeyCode & "<>" & Shift
 TextBox1 = TextBox1 & Chr(KeyCode)
 End Select

End Sub

Em đang đọc đoạn code trên nhưng chưa hiểu. MOng Anh/chị nói qua giúp em một chút
Xin cám ơn
 
I/Trước hết ta tìm hiểu 1 chút về các tham số:
+Keycode: là mã của phím được nhấn xuống và đang nhả lên.
+Shift: Là tình trạng của phím Shift có được nhấn kèm hay không
-Nếu không nhấn =0
-Nhấn Shift=1
-Nhấn kèm Shift+Ctrl =3…

II/Giờ ta xem nội dung Code:
If Shift = 2 Then Exit Sub Nếu nhấn Shift+…. thì thoát Sub này và thực hiện theo mã bàn phím.

Select Case KeyCode Ngoài ra ta xét các trường hợp


Case Is = 8 And Len(TextBox1) > 0
Bạn nhấn phím xoá lùi, nếu TextBox có Ký tự thì giữ lại n-1 ký tự bên trái (Bỏ 1 ký tự)
Case Is = 13
CommandButton2_Click


Bạn nhấn phím Enter : Thoả thuận nếu nhấn Enter thì cũng như nhấn CommandButton2

Case Is = 27
Unload Me

Bạn nhấn Esc, thoả thuận nhấn phím này là thoát Form

Case Is >= 44
TextBox1 = TextBox1 & Chr(KeyCode)

Nếu KeyCode>=44 thì Textbox nhận ký tự của phím vừa gõ


Hì, nôm na như vậy chẳng giống ai, mong giúp bạn 1 chút.
 
Lần chỉnh sửa cuối:
Upvote 0
Dear Anh Sealand
Cuối tuần rảnh mới đọc và hiểu rõ hơn bài Anh viết. Cám ơn Anh rất nhiều

Em xin phép hỏi thêm cihút. Có cách nào em biết mỗi phím trên bàn phím được mã hóa thành sô (keycode) nào không?

Cám ơn Anh
 
Upvote 0
Dear Anh Sealand
Cuối tuần rảnh mới đọc và hiểu rõ hơn bài Anh viết. Cám ơn Anh rất nhiều

Em xin phép hỏi thêm cihút. Có cách nào em biết mỗi phím trên bàn phím được mã hóa thành sô (keycode) nào không?

Cám ơn Anh

Bạn tạo cái textbox rồi dùng code này để biết được keycode của từng phím nhấn
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
MsgBox KeyCode
End Sub
 
Upvote 0
Bạn sửa tạm cái đoạn Code của bạn 1 chút:

Mã:
[COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub ListBox1_KeyUp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal KeyCode [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]MSForms[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ReturnInteger[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]ByVal Shift [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Integer[/COLOR][COLOR=#007700])
'Day la doan them tam de thu sau nay xoa di
msgb[/COLOR][/COLOR]ox "KeyCode = " & KeyCode & "  . Shift =  " & Shift
KeyCode=0
exit sub
[COLOR=#000000][COLOR=#007700]'Het do[/COLOR][/COLOR]ạn them tam
[COLOR=#000000][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Shift [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]2 Then [/COLOR][COLOR=#007700]Exit [/COLOR][COLOR=#0000BB]Sub
Select [/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]KeyCode
[/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]Is [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]8 [/COLOR][COLOR=#007700]And [/COLOR][COLOR=#0000BB]Len[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TextBox1[/COLOR][COLOR=#007700]) > [/COLOR][COLOR=#0000BB]0
TextBox1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Left[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TextBox1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Len[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]TextBox1[/COLOR][COLOR=#007700]) - [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])
Case [/COLOR][COLOR=#0000BB]Is [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]13
CommandButton2_Click
[/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]Is [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]27
Unload Me
[/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]Is [/COLOR][COLOR=#007700]>= [/COLOR][COLOR=#0000BB]44 [/COLOR][COLOR=#DD0000]'And Shift = 0
'[/COLOR][COLOR=#0000BB]MsgBox KeyCode [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"<>" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Shift
 TextBox1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]TextBox1 [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]Chr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]KeyCode[/COLOR][COLOR=#007700])
 [/COLOR][COLOR=#0000BB]End Select

End Sub  [/COLOR][/COLOR]

Giờ bạn gõ cái gì nó báo bạn KeyCode và phím Shift. Thử chán thì xoá đoạn tạm này đi
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom