hi,
see below
demo for mobile fone mask
Sub edtCelular_TextChanged (Old As String, New As String)
Dim current As String
current = New
Dim positioning(12) As Int
'positioning(1) = 1, 2, 3, 6, 7, 8, 9, 11, 12, 13, 14 ) As Int
'(99) 1234-1234
positioning(0) = 1
positioning(1) = 2 '1
positioning(2) = 3 '2
positioning(3) = 6 ' 3
positioning(4) = 7
positioning(5) = 8
positioning(6) = 9
positioning(7) = 11
positioning(8) = 12
positioning(9) = 13
positioning(10) = 14
If (isUpdating) Then
isUpdating = False
Return
End If
Dim number As String
number=""
Dim letra As String
Dim lista As String
lista="0123456789"
For i=0 To current.length-1
letra=current.CharAt(i)
If lista.IndexOf(letra) >=0 Then
number=number & letra
End If
Next
Dim maxNumberLength As Int
maxNumberLength=11
If (number.length > 10) Then
number = number.substring2(0, 10)
'number.sub
End If
Dim length As Int
length = number.length
' Pad the number To 10 characters...
Dim paddedNumber As String
paddedNumber = padNumber(number, maxNumberLength)
' Split phone number into parts... /
Dim ddd,part1,part2 As String
Try
ddd = paddedNumber.substring2(0, 2)
Catch
End Try
Try
part1 = paddedNumber.substring2(2, 6)
Catch
End Try
Try
part2 = paddedNumber.substring2(6, 10)
Catch
End Try
' build the masked phone number... */
Dim Phone As String
Phone = "(" & ddd & ") " & part1 & "-" & part2
isUpdating = True
edtCelular.Text=Phone
edtCelular.SelectionStart = positioning( length )
End Sub
Sub padNumber( number As String, maxLength As Int) As String
'String padded = new String(number);
Dim padded As String
Dim i As Int
padded=number
For i = 0 To maxLength - number.length
padded = padded & " "
Next
Return padded
End Sub
amigo, se precisar tenho outras mascaras
sou brasileiro,ok (31) 94136747