Например, я только второй символ в каждой строке, чтобы быть х, в то время как 3-й до 10-й символ должен быть шестнадцатеричной цифрой.
В данный момент я использую Select Case, затем проверяю положение каретки (используя textbox.selectionstart) и проверяю, является ли нажатая клавиша «легальным» символом.
Есть ли лучший способ сделать это, так как это замедляет работу с большими объемами текста.
Это код, который у меня есть на данный момент:
Select Case TextBox1.SelectionStart
Case TextBox1.GetFirstCharIndexOfCurrentLine + 1
If Not e.KeyChar = "x" Then
e.Handled = True
End If
Case (TextBox1.GetFirstCharIndexOfCurrentLine + 2) To (TextBox1.GetFirstCharIndexOfCurrentLine + 9)
Dim allowedchars As String = "abcdefABCDEF0123456789" & vbCrLf & Chr(Keys.Back)
If allowedchars.Contains(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Select