Cursor Location
You may like to consider using keypress event instead of change event. Your
code isn't full proof, the user can type "#" in the middle of the text and
the code won't detect it.
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 35 Then
KeyAscii = 0
MsgBox "invalid character"
End If
End Sub
Use SelStart to place the cursor within the text box. To go to the end:
TextBox1.SelStart = 1000
or set it to Len(TextBox1.Text)
"Jack" wrote in message
...
Hello all,
I have a text box on a form. In the text box, I do not
allow someone to use the "#" symbol, but using the method
I use, when I remove the symbol after someone tries to use
it, the cursor is restored to the beginning of the string
or not at all. I would like the cursor to be at the end of
the string so the user can just continue typing after
dismissing the error box. Here is the code I'm using:
Private Sub txtValue_Change()
If Right(txtValue, 1) = "#" Then
MsgBox "You may not use the ""#"" symbol for this
value!", vbOKOnly + vbExclamation, "Invalid Character..."
txtValue = Left(txtValue, Len(txtValue) - 1)
txtValue.SetFocus
End If
End Sub
Does anyone know how I can programmatically tell the
cursor to go to the end of the string in the textbox on
focus?
Thanks for any advice, Jack
|