Okay, this is just a simple trick to determine whether CAPS is pressed because some people here use API to determine whether the CAPS Lock is pressed.

KeyDown and KeyUp don't detect exactly the same information as KeyPress.

KeyPress detects a character in its KeyAscii parameter, but KeyDown and KeyUp detect a physical keystroke in their KeyCode parameter.

  • KeyUp and KeyDown can detect keystrokes not recognized by KeyPress, such as function, editing, and navigation keys.
  • KeyPress can distinguish between different ASCII characters generated by the same physical keystroke.

Where did I get KeyCode = 20? Try to use a breakpoint on Text1_KeyDown event to get the keycode of the Caps Lock. This will just be available on KeyDown event.

Hopes this helps.

Edited 5 Years Ago by Nick Evan: n/a

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 20 Then
   MsgBox "CAPS is Pressed"
End If
End Sub

Done. Next time, when creating a new thread, please select "code snippet" from the combobox. (it reads "discussion thread" standard).

Thanks, I just forget to set it to the correct discusion section because I am at the Code Snippet tab when I created this thread, so I hope mods will also fix the default combo box value when creating threads. Thanks.

The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.