我正在对textbox keypress事件运行一些自定义验证。
当用户按下某个键时,我想找出该特定按键后存在的文本。
EG。如果文本框当前包含12.4并且用户按下" 6"关键我想知道之后的文本是什么。我尝试将e.KeyChar
附加到textbox.text的末尾,但如果用户突出显示文本框的某些部分然后按某个键,则会出现问题。
无论如何都要检测按下按键后存在的实际值?
答案 0 :(得分:1)
您必须根据当前插入位置反汇编当前文本,检查传入文本,然后重新组合文本:
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) _
Handles TextBox1.KeyPress
Dim part1 As String = TextBox1.Text.Substring(0, TextBox1.SelectionStart)
Dim part2 As String = TextBox1.Text.Substring(TextBox1.SelectionStart + _
TextBox1.SelectionLength)
Dim character As String = String.Empty
If Char.IsDigit(e.KeyChar) Then
character = e.KeyChar.ToString
Dim result As String = part1 & character & part2
'Do something with result...
Else
e.Handled = True
End If
End Sub