我在 WinForms 中的文本框上设置了一种过滤器,以排除客户端输入的特定字符。但是,我似乎遇到了需要帮助解决的新问题。
a) 单击 BackSlash 会使光标移动到字符串的前面,而不是停留在正确的位置
b) 后续单击 BACKSLASH 仍会导致从正确位置删除,但光标仍位于字符串的开头
Private Sub txtExp_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtExp.KeyPress
Dim strtext As String = txtExp.Text
If (e.KeyChar = ChrW(Keys.Back)) Then
If (strtext.Length > 0) Then
txtExp.Text = strtext.Substring(0, strtext.Length - 1)
txtExp.Update()
End If
ElseIf (Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar) Or (e.KeyChar = "."))) Then
e.Handled = True
Else
txtExp.AppendText(e.KeyChar)
End If
End Sub
我想要的是始终将光标放在正确的位置。请问我该怎么做?