CLR: .Net / Mono / Boo / Otros CLR > C#
¿Como inserto un solo punto en un textbox?
(1/1)
correoteca:
Hola que tal.
Mi duda es la siguiente:
Como puedo insertar un solo punto decimal en un textbox.
Con este código logro que solo acepte números y el punto, pero no puedo escribir solo uno y de esta manera me marca un error.
--- Citar ---private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != '.' //También e.KeyChar != 46')
{
e.Handled = true; //
}
}
--- Fin de la cita ---
Se aceptan todo tipo de soluciones.
Gracias por leer mi tema.
pedroqv:
Una solucion que a mi se me viene a la mente es utilizar una bandera la cual va tener el estado false o true si se puso un punto.
bool bandera = true;
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 )
{
if (e.KeyChar=='.' && bandera )
{
bandera = false; //ya no acepta otro punto
}
e.Handled = true; //
}
}
lugarda:
Hola, hice un pequeño cambio en la solucion de pedroqv y funciona perfecto. Espero te sirva de ayuda
--- Código: C# --- if (!char.IsDigit(en.KeyChar) && en.KeyChar != (char)Keys.Back && en.KeyChar != 46) en.Handled = true; else if (en.KeyChar == 46 ) { if (banderaPunto) { banderaPunto = false; } else en.Handled = true; }
--- Cita de: "pedroqv" ---Una solucion que a mi se me viene a la mente es utilizar una bandera la cual va tener el estado false o true si se puso un punto.
bool bandera = true;
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 )
{
if (e.KeyChar=='.' && bandera )
{
bandera = false; //ya no acepta otro punto
}
e.Handled = true; //
}
}
--- Fin de la cita ---
Navegación
Ir a la versión completa