none
Como fazer um txtbox só aceitar pontos e não virgula. RRS feed

  • Pergunta

  • Bom dia. Preciso fazer com que um textbox só aceite ponto e não aceite virgulas. Como posso fazer isso 0.000 ?

    JUNIOR GUERREIRO T.I

    terça-feira, 12 de setembro de 2017 14:11

Respostas

  • Desta forma vc consegue o que deseja:

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (textBox1.Text.Contains(",") && e.KeyChar == (char)46)
                    {
                        e.Handled = true;
                    }
                    //Trava o teclado caso não seja ponto, número ou backspace
                    if (!(Char.IsNumber(e.KeyChar)) && !(e.KeyChar == (char)8) && !(e.KeyChar == (char)46))
                    {
                        e.Handled = true;
                    }
            }
    
    Obs.: se vc desejar que aceite vírgula ao invés de ponto, troque o (char)46 por (char)44


    terça-feira, 12 de setembro de 2017 15:13

Todas as Respostas

  • Desta forma vc consegue o que deseja:

            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (textBox1.Text.Contains(",") && e.KeyChar == (char)46)
                    {
                        e.Handled = true;
                    }
                    //Trava o teclado caso não seja ponto, número ou backspace
                    if (!(Char.IsNumber(e.KeyChar)) && !(e.KeyChar == (char)8) && !(e.KeyChar == (char)46))
                    {
                        e.Handled = true;
                    }
            }
    
    Obs.: se vc desejar que aceite vírgula ao invés de ponto, troque o (char)46 por (char)44


    terça-feira, 12 de setembro de 2017 15:13
  • Muito obrigado. deu certinho aqui.

    JUNIOR GUERREIRO T.I

    terça-feira, 12 de setembro de 2017 15:17
  • Uma maneira super simples de fazer, e presumindo que tem de usar mesmo mesmo um text box e não Masked Box:

    Coloque no Form_Load do seu projeto

    // adiciona evento e direciona pro método de tratamento
    this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
    

    e no código do seu Form:

    // método pra tratar o evento chamado cada vez que o texto muda
    private void textBox1_TextChanged(object sender, EventArgs e)
            {
                TextBox txt = sender as TextBox;
                if (txt.Text.Contains(","))
                {
                    txt.Text = txt.Text.Replace(',', '.');
                    txt.SelectionStart = txt.Text.Length;
                    txt.ScrollToCaret();
                }
    
            }


    ------------------------------------------ "Existem 10 tipos de pessoas: as que entendem números binários e as que não entendem..."

    terça-feira, 12 de setembro de 2017 15:34