MASCARA PARA TELEFONE

OMAR2011 28/04/2017 09:12:16
#473635
Alguém pode melhorar isto.
Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
If Len(TextBox1.Text) = 8 Then [ô]FIXO[ô]
TextBox1.Text = Mid(TextBox1.Text, 1, 4) & [Ô]-[Ô] & Mid(TextBox1.Text, 5, 5)
ElseIf Len(TextBox1.Text) = 9 Then [ô]CELULAR[ô]
TextBox1.Text = Mid(TextBox1.Text, 1, 5) & [Ô]-[Ô] & Mid(TextBox1.Text, 6, 6)
End If
End Sub
COQUITO 28/04/2017 13:23:15
#473637
Citação:

:
Alguém pode melhorar isto.
Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
If Len(TextBox1.Text) = 8 Then [ô]FIXO[ô]
TextBox1.Text = Mid(TextBox1.Text, 1, 4) & [Ô]-[Ô] & Mid(TextBox1.Text, 5, 5)
ElseIf Len(TextBox1.Text) = 9 Then [ô]CELULAR[ô]
TextBox1.Text = Mid(TextBox1.Text, 1, 5) & [Ô]-[Ô] & Mid(TextBox1.Text, 6, 6)
End If
End Sub


pode ajudar este video
https://www.youtube.com/watch?v=7xNiTjoeMKc
AMORIM 29/04/2017 08:37:42
#473646
Olha pessoal como ficou se alguém puder melhorar

Private Sub txtCelular_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCelular.KeyPress
[ô]Telefone = Me.txtTelefone.Text
[ô]Máscara de data com a barra
If txtCelular.TextLength = 14 Then
If Not e.KeyChar = Chr(8) Then
e.Handled = True
txtTelefone.SelectionStart = txtCelular.TextLength
End If
End If
If IsNumeric(e.KeyChar) = True Then
Select Case txtCelular.TextLength
Case 0
txtCelular.Text = txtCelular.Text & [Ô]([Ô]
txtCelular.SelectionStart = 1
Case 2
txtCelular.Text = txtCelular.Text & [Ô])[Ô]
txtCelular.SelectionStart = 2
Case 4
txtCelular.Text = txtCelular.Text & [Ô][Ô]
txtCelular.SelectionStart = 9
Case 9
txtCelular.Text = txtCelular.Text & [Ô]-[Ô]
txtCelular.SelectionStart = 11
End Select
End If
End Sub
JCM0867 29/04/2017 12:44:56
#473647
Isso é complicado pq tem inúmeras maneiras que o usuário pode digitar o telefone
e fica trabalhoso fazer uma rotina para ajustar num padrão.

(099) 99999-9999
(99) 99999 - 9999
99 - 9999-99999
(99)999999999
99 9999.99999
etc.

O melhor é usar o masked textbox
PLUGSOFTSM 02/05/2017 22:19:01
#473697
Tente usar a função abaixo

Public Function FormatarFone(Num As String, CodArea As String) As String
Dim St As String = [Ô][Ô]
For Each C As Char In Num
If Char.IsDigit(C) Then St += C [ô]é um número
Next
If St.Length < 8 Then
Return [Ô][Ô]
Else
If St.Length = 8 Then [ô]Telefone convencional sem DDD
St = CodArea + St
ElseIf St.Length = 9 Then [ô]Telefone celular sem DDD
St = CodArea + St
End If
If St.Length = 8 Or St.Length = 10 Then [ô]Telefone
If St.Length > 10 Then St = St.Substring(St.Length - 10)
St = [Ô]([Ô] + St.Insert(6, [Ô]-[Ô]).Insert(2, [Ô])[Ô])
ElseIf St.Length = 9 Or St.Length = 11 Then
St = [Ô]([Ô] + St.Insert(7, [Ô]-[Ô]).Insert(2, [Ô])[Ô])
End If
Return St
End If
End Function

Um bom local para usá-la -e no evento leave dos controles
Vc pode melhorá-la eu fiz uma coisa bem simples
Pode-se digitar qualquer número de telefone formatado ou não e o Sistema vai formata-lo para o formato adequado

Espero ter ajudado
Página 2 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas