Permitir el ingreso solo de números y decimales con dos dígitos en una caja de texto, con C#.

Fecha: 14/May/2005 (08/May/05)
Autor: sergiotarrillo - supersergioman@hotmail.com

 


 

Introducción (para no perder la costumbre)

Esta ves no voy a hablar mucho, solo voy a mandar un código que me estaban pidiendo mucho, por si alguien lo desea. Vi otros códigos en el guille, pero estaban en VB, y con otra lógica!

Lo que hago es validar el ingreso en caja de texto, de tal manera que solo ingresen números, y con la opción de que tenga dos decimales, no permite poner dos puntos, y solo se puede ingresar números y el punto, esta bien chevere, si descubren algún error me pasan la voz, para mejorarlo, si hay algún cuestionamiento me pasan la voz.

Aplicación

Para aplicar el código, solo hay que copiarlo a nuestra caja de texto en el evento KeyPress, de la caja deseada, ah verdad no se olviden de cambiarle el nombre al textbox, debe correr normal, ya saben cualquier duda al mail!

     private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) {

       //MessageBox.Show(Convert.ToInt16(e.KeyChar).ToString());
       
       if (e.KeyChar ==8 ) {
         e.Handled = false;
         return;
       }


       bool IsDec = false;
        int nroDec = 0;

       for (int i=0 ; i<textBox1.Text.Length; i++) {
         if ( textBox1.Text[i] == '.' )
            IsDec = true;

         if ( IsDec && nroDec++ >=2) {
            e.Handled = true;
            return;
         }


       }

       if ( e.KeyChar>=48 && e.KeyChar<=57)
         e.Handled = false;
       else if (e.KeyChar==46)         
         e.Handled = (IsDec) ? true:false;
       else
         e.Handled = true;

     }

 

Bueno espero que el código les sirva, y les ahorre un poco de trabajo. El origen del código es que me lo pidieron muchas veces, así que lo colgué mejor para no olvidarlo :D, no se olviden de calificar el articulo (será articulo?, weno yo lo publique como código), :S


ir al índice