I had this situation where I had a Textbox on a Form, and in the KeyPress event, I set the CharacterCasing to either Upper or Lower depending on the field I was working on. The problem I had was that the first character was getting ignored. It turned out that the problem was that for some reason setting the CharacterCasing in the KeyPress event causes you to lose the first character. The solution was to move the CharacterCasing block to the TextBox.Enter event.
To recreate this error, open a form, add a textbox to the form. Create a Keypress Event, and set the TextBox's CharacterCasing to True. If you run the program and click in the textbox, and enter a value, the first value will be ignored.
The solution was to move it to the TextBox.Enter subroutine.