MASCARA CONTA /AGENCIA BANCARIA

MAXCIM 17/05/2017 22:37:28
#474037
Olá amigos

como eu monto uma função para implementar ao digitar no textbox uma mascara para conta bancaria.

a ideia é manter o [Ô] -[Ô] fixo nos casos de banco com digito.

exemplo:
-1
1-2
12-5
125-6
1256-9
MAXCIM 01/09/2017 18:17:57
#476236
e ai gente? nenhuma ideia?

o modulo de cadastro de cheques e de CNAB precisam que agencia e conta sejam preenchidos de forma correta.

e meu clientes não preenchem o - do digito e vira e mexe da erro de validação.


se eu fizer um campo com auto formatação seria o ideal.

DS2T 01/09/2017 20:21:09
#476238
Resposta escolhida
Você poderia fazer algo +- assim:

Public Class MeuMaskedAgencia
Inherits TextBox

Private temp As String

Protected Overrides Sub OnKeyDown(e As KeyEventArgs)
MyBase.OnKeyDown(e)

e.Handled = True

If e.KeyCode = Keys.Back Then
If temp.Length > 0 Then
temp = temp.Remove(temp.Length - 1, 1)
MostraValor()
End If
End If

End Sub


Protected Overrides Sub OnKeyPress(e As KeyPressEventArgs)
MyBase.OnKeyPress(e)

e.Handled = True
If Char.IsNumber(e.KeyChar) Then
temp = String.Concat(temp, e.KeyChar)
MostraValor()
End If

End Sub

Private Sub MostraValor()


If temp.Length > 0 Then
Dim esquerda As String = String.Empty
Dim direita As String = temp.Substring(temp.Length - 1, 1)

If temp.Length > 1 Then
esquerda = temp.Substring(0, temp.Length - 1)
End If

Me.Text = String.Concat(esquerda, [Ô]-[Ô], direita)
Me.SelectionStart = Me.Text.Length
Else
Me.Text = String.Empty
End If

End Sub

End Class



Mas melhore o código, comece a tratar também quando o usuário apagar uma seleção, ou quando ele digitar por cima de uma seleção, por exemplo...
Fiz meio na correria.

Abraços!
Tópico encerrado , respostas não são mais permitidas