Usuário com melhor resposta
Como colocar mascara para textbox e auto completar os dígitos restantes com zero no Visual Basic

Pergunta
-
Como faço para colocar uma mascara de 5 dígitos quando o usuário digitar um valor menor que 5 dígitos ele auto complete os dígitos a esquerda com "0" até preencher os 5 dígitos no Visual Basic?
exemplo:
quando o usuário digitar 5 preencha com 00005
quando o usuário digitar 20 preencha com 00020
quando o usuário digitar 140 preencha com 00140
quando o usuário digitar 2452 preencha com 02452
quando o usuário digitar 19254 continue com 19254
Respostas
-
Vê se ajuda...
Private Sub TextBox6_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox6.LostFocus
If TextBox6.Text = 0 Then
MsgBox("Informe o valor!", "INFORMAÇÃO")
TextBox6.Text = ""
TextBox6.Focus()
Else
TextBox6.Text = TextBox6.Text.PadLeft(6, "0")
End If
End Sub
[]'s
Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta" ou se foi útil marque como "útil". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.
- Editado Alvesanderson segunda-feira, 15 de setembro de 2014 17:16 Correção
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 15 de setembro de 2014 18:15
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 15 de setembro de 2014 18:25
Todas as Respostas
-
-
Voce gostaria q a mascara preenchece enquanto digita ou poderia ser depois que sair o foco do campo?
Se for quando sair o foco do campo, mais facil, vc formata o campo, no evento Leave do textbox vc faz o seguinte codigo: String.Format("{0:00000}", textbox.text).
Caso seja durante a digitação, vc terá que pegar o evento keydown do textbox, verificar se realmente é um digito (IsDigit) e depois fazer o mesmo format passando pro textbox, lembra que a primeira linha dentro deste evento tem que ser e.handler = true, para ele não atribuir o valor que vc clicou direto no textbox antes de vc valida-lo.
Flw...
- Editado Marcus Paulo Augusto segunda-feira, 15 de setembro de 2014 16:52
-
-
Vê se ajuda...
Private Sub TextBox6_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox6.LostFocus
If TextBox6.Text = 0 Then
MsgBox("Informe o valor!", "INFORMAÇÃO")
TextBox6.Text = ""
TextBox6.Focus()
Else
TextBox6.Text = TextBox6.Text.PadLeft(6, "0")
End If
End Sub
[]'s
Se o meu conteúdo resolveu o seu problema ou sua dúvida, então marque como "Resposta" ou se foi útil marque como "útil". Pois isso ajudará outras pessoas com o mesmo problema ou dúvida.
- Editado Alvesanderson segunda-feira, 15 de setembro de 2014 17:16 Correção
- Sugerido como Resposta Ricardo Barbosa Cortes segunda-feira, 15 de setembro de 2014 18:15
- Marcado como Resposta Ricardo Barbosa Cortes segunda-feira, 15 de setembro de 2014 18:25
-
Meu caro amigo, simplesmente faça isso:
Private Sub txtCodigo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(TextBox1.Text, "00000")
End SubOu se você quer ir digitando e já aparecendo o formato, coloque o mesmo no evento Change
-
Meu caro amigo, simplesmente faça isso:
Private Sub txtCodigo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = Format(TextBox1.Text, "00000")
End SubOu se você quer ir digitando e já aparecendo o formato, coloque o mesmo no evento Change
Desta forma, funciona. Quando esta faltando caracteres ele completa com os zeros que precisar a esquerda.
Mas tem como fazer ele completar a direita ?