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

[0] Índice de Mensajes

Ir a la versión completa