移至字符串末尾的下一个控件

Move to next control at end of string

我有一个带有掩码控件的表单。掩码接受 10 个数字,我将它们格式化为短文本。我不会对它们做任何计算。它们只是一串数字。当我输入最后一个字符时,我希望控件将焦点更改到另一个控件。示例:我输入 1111-10-1234,当我输入 4 时,我希望焦点转到下一个控件。我尝试使用 Len 来改变焦点,但它总是显示长度为 12,因为我有 12 个占位符。任何其他建议。

您可以重新检查仅包含数字的字符串的长度。使用正则表达式函数去除字符串中的非数字符号:

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 

检查您的代码。

您可以使用 SelStart 属性:

If Me!YourTextBox.SelStart = 12 Then
    ' Cursor has moved past the last position.
    Me!SomeOtherControl.SetFocus
End If