none
Como colocar mascara para textbox e auto completar os dígitos restantes com zero no Visual Basic RRS feed

  • 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

    sábado, 13 de setembro de 2014 14:09

Respostas

  • Vê se ajuda...

      Private Sub TextBox6_LostFocus(ByVal sender As ObjectByVal 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.


    segunda-feira, 15 de setembro de 2014 17:10

Todas as Respostas

  • Boa tarde!

    Vc tentou usar o componente maskeditbox?

    Caso vc não queira ou não goste de usar esse componente, verifique este site.

    Ele me ajudou bastante a criar minhas próprias máscaras.

    Att.

    Giovani

    sábado, 13 de setembro de 2014 15:54
  • 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...


    segunda-feira, 15 de setembro de 2014 16:52
  • no c# utilizo assim: textbox1.text.PadLeft(6, '0');

    verifica se ajuda em alguma coisa.

    Abs

    segunda-feira, 15 de setembro de 2014 17:05
  • Vê se ajuda...

      Private Sub TextBox6_LostFocus(ByVal sender As ObjectByVal 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.


    segunda-feira, 15 de setembro de 2014 17:10
  • Meu caro amigo, simplesmente faça isso:

    Private Sub txtCodigo_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    TextBox1.Text = Format(TextBox1.Text, "00000")

    End Sub

    Ou se você quer ir digitando e já aparecendo o formato, coloque o mesmo no evento Change



    terça-feira, 19 de julho de 2016 22:59
  • Meu caro amigo, simplesmente faça isso:

    Private Sub txtCodigo_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    TextBox1.Text = Format(TextBox1.Text, "00000")

    End Sub

    Ou 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 ?

    sábado, 10 de fevereiro de 2018 14:30