FIX: KeyPress Event Code Does Not Reset Value of Keystroke

ID: Q183473


The information in this article applies to:
  • Microsoft Windows CE Toolkit for Visual Basic 5.0, version 1.0


SYMPTOMS

In Visual Basic, the KeyPress event can be used to validate keystrokes and prevent invalid characters from being entered in controls. The KeyAscii value can be evaluated for valid characters and reset to 0 (zero) to remove invalid characters. This method does not work in the controls for the Windows CE Toolkit for Visual Basic 5.0 (VBCE). Modifying the KeyAscii value has no affect on the character entered.


CAUSE

The KeyAscii value used by the control is not affected by changes made to its value in KeyPress event procedure code.


RESOLUTION

The following are two ways to work around this problem:

  • Use a LostFocus event procedure to validate the user-entered value and if necessary set the focus back to the control for correction. For example, the following code allows only digits in the text entered in textbox Text1:
    
          Private Sub Text1_LostFocus()
    
             Dim sText, i, iChar
             sText = Text1.Text
    
             For i = 1 To Len(sText)
                iChar = Asc(Mid(sText, i, 1))
                If ((iChar < 48) Or (iChar > 57)) Then
                   MsgBox "Only digits allowed!"
                   Text1.SetFocus
                   Exit For
                End If
             Next
    
          End Sub 


  • NOTE: The cursor may not be visible after the SetFocus command, it should be at the end of the entered text.

  • Use the KeyPress event and check the value of KeyAscii. Check for and ignore KeyAscii values less than 32 to accommodate control characters such as backspaces used to correct data. Display a message box when invalid characters are entered. This method will notify the user only when invalid data is entered; it will not prevent invalid data.



STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.

This problem was corrected in Windows CE Toolkit for Visual Basic 6.00.


REFERENCES

Books Online for Microsoft Windows CE Toolkit for Visual Basic 5.0.

Additional query words: vbce wce vbce5 vbce6

Keywords : kbToolkit kbVBp kbVBp500bug kbVBp600fix kbWinCE kbWinCE100 kbGrpVB
Version : WINDOWS:1.0
Platform : WINDOWS
Issue type : kbbug


Last Reviewed: March 3, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.