none
Formatando um Textbox RRS feed

  • Pergunta

  • Olá amigos do MSDN, há tempos venho tentando formatar um Textbox mas sem usar o MaskedTextBox.

    A rotina que não estou conseguindo fazer é a seguinte:

    Quero que, ao ir digitando um valor sempre integer num Textbox, ao mesmo tempo este valor vai adquirindo a formatação de pontos separador de milhar, tipo isso:

    vou entrando com 123568657 e este número vai automaticamente ficando assim: 123.568.657 e já sendo populado por uma variável var1 por exemplo. Essa foi a última rotina que tentei, mas não esta legal:

      Public Class Form1
        Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress

            Dim var As Integer

            If TextBox1.Text = "" Then Exit Sub
            var = TextBox1.Text
            TextBox1.Text = FormatNumber(var, 0, 0)

        End Sub
    End Class
    quinta-feira, 18 de março de 2021 07:48

Todas as Respostas

  • tente asi en tu keypress

    if char.isdigite(e.keychar) and (e.keycha".") then

    e.handled=true

    end if

    assim estou falando que meu key so aceita numeros e um ponto

    e dentro do evento textbox1_enter

    coloca assim

    if textbo.text.legth >2

    textbox.text="."

    end if

    aqui estou falando que se for mas de 3 digitos colocar ponto.

    espero que ajude

    sábado, 20 de março de 2021 21:40
  • Prezado Durval.

    Tente assim:

    Private Sub txtComponentes_TextChanged(sender As Object, e As EventArgs) Handles txtComponentes.TextChanged
            txtComponentes.Text = CDec(txtComponentes.Text).ToString("#,###")
            txtComponentes.SelectionStart = txtComponentes.Text.Length + 1
    End Sub

    Em inglês a separação dos milhares é por vírgula e os decimais por ponto.


    MARIANO1776


    • Editado Mariano1776 domingo, 21 de março de 2021 00:03
    • Sugerido como Resposta Mariano1776 segunda-feira, 10 de maio de 2021 00:27
    sábado, 20 de março de 2021 23:57
  • Boa noite.

    Conseguiu resolver este?

    Se te ajudou, por gentileza, marque como resposta.


    MARIANO1776

    segunda-feira, 10 de maio de 2021 00:28