Перейти к следующему элементу управления в конце строки - PullRequest
0 голосов
/ 28 августа 2018

У меня есть форма с элементом управления, которая имеет маску. Маска принимает 10 чисел, я их отформатировал в виде короткого текста. Я не буду делать какие-либо расчеты на них. Они просто строка чисел. Я хочу, чтобы элемент управления изменил фокус на другой элемент управления при вводе последнего символа. Пример: я ввожу 1111-10-1234, когда набираю 4, я хочу, чтобы фокус переключился на следующий элемент управления. Я пытался использовать Len, чтобы изменить фокус, но он всегда показывает длину как 12, так как у меня 12 мест. Любые другие предложения.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вы можете использовать свойство SelStart :

If Me!YourTextBox.SelStart = 12 Then
    ' Cursor has moved past the last position.
    Me!SomeOtherControl.SetFocus
End If
0 голосов
/ 28 августа 2018

Вы можете перепроверить длину строки только с числами. Используйте функционал регулярного выражения, чтобы избавиться от нецифровых знаков в строке:

Public Function f_NumberExtractor(ByVal str As String) As string
Dim objRegEx As Object

 if len(str) >1 then
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "\D"
objRegEx.Global = True

f_NumberExtractor= objRegEx.Replace(str, vbNullString) 

else

 f_NumberExtractor=vbnullstring

end if

End Function

Итак, теперь вы можете иметь

len(f_NumberExtractor(me.cmbName.value))>11 

проверьте ваш код.

...