VB6
- Evento Validate - formatando o número do telefone.
Você pode usar o evento Validate do controle TextBox para fazer a formatação da entrada de dados feitas pelo usuário. Como exemplo vou mostrar como formatar o número do telefone informado em uma caixa de texto. ( O evento presente somente na versao 6 do VB )
1- Inicie um novo projeto no VB e no formulário padrão insira duas labels duas caixas de texto e um botão de comando, conforme layout abaixo:
![]() |
![]() |
![]() |
| O layout do formulário | A entrada inicial | O valor formatado |
2- A seguir insira no evento Validate do controle text1.text o seguinte código:
Private Sub Text1_Validate(keepfocus As Boolean) If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then keepfocus = True MsgBox "Informe um valor valido !", vbInformation, "Formatando telefone" Exit Sub End If Text1.text = FormataTelefone(Text1.text) End Sub |
A função que realiza a formatação é a seguinte: ( fique a vontade para ajustá-la a seu caso...)
Function FormataTelefone(ByVal text As String) As String
Dim i As Long
' ignora vazio
If Len(text) = 0 Then Exit Function
'verifica valores invalidos
For i = Len(text) To 1 Step -1
If InStr("0123456789", Mid$(text, i, 1)) = 0 Then
text = Left$(text, i - 1) & Mid$(text, i + 1)
End If
Next
' ajusta a posicao correta
If Len(text) <= 7 Then
FormataTelefone = Format$(text, "!@@@-@@@@")
ElseIf Len(text) > 7 And Len(text) <= 9 Then
FormataTelefone = Format$(text, "!(@@) @@@-@@@@")
ElseIf Len(text) > 9 Then
FormataTelefone = Format$(text, "!(@@) @@@@-@@@@")
End If
End Function
|
Se o usuário não informar um valor numérico ou um valor menor que 4 caracteres -
If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then
o foco é mantido no controle e uma mensagem é exibida para o usuário:
keepfocus = True
MsgBox "Informe um valor valido !", vbInformation,
"Formatando telefone"
Exit Sub
Se o valor estiver dentro do esperado , a função FormataTelefone é invocada e a formatação ocorre como na figura mostrada acima.
Até mais...