Usuário com melhor resposta
Como fazer um txtbox só aceitar pontos e não virgula.

Pergunta
-
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
- Editado Jefferson Deroza terça-feira, 12 de setembro de 2017 15:14
- Marcado como Resposta Junior Guerreiro terça-feira, 12 de setembro de 2017 15:17
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
- Editado Jefferson Deroza terça-feira, 12 de setembro de 2017 15:14
- Marcado como Resposta Junior Guerreiro 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..."