The contents of the input key are not reflected in the KeyPress event. You need to predict the string after it is reflected.
Use SelectionStart and SelectionLength properties to separate the text to the left and right. When you enter a normal character, reflected text will be left + input character + right.
Private Sub tbxID_KeyPress(sender As Object, e As KeyPressEventArgs) _
Handles tbxID.KeyPress
If e.KeyChar = vbBack Then
e.Handled = False
Return
End If
If e.KeyChar < "1"c Or e.KeyChar > "9"c Then
e.Handled = True
Return
End If
Dim tbox As TextBox = DirectCast(sender, TextBox)
Dim prevText As String = tbox.Text
Dim leftStr As String = prevText.Substring(0, tbox.SelectionStart)
Dim rightStr As String =
prevText.Substring(tbox.SelectionStart + tbox.SelectionLength)
Dim reflectedText As String = leftStr & e.KeyChar & rightStr
End Sub