none
validar textbox solo numero de teléfono c# RRS feed

  • Pregunta

  • Hola, buen día estoy diseñando un sistema en el cual necesito validar un textbox que solo pueda ingresar numeros de teléfono como por ejemplo 04243485548 y no tengo ni idea de como hacerlo ni por donde empezar.. Necesito ayuda
    domingo, 22 de mayo de 2016 21:38

Respuestas

  • Hola jeckson vasquez,

    Solo tendrías que usar el evento KeyPress de tu textBox para permitir que ingresen solo números desde el teclado.

            private void txtTelefono_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (Char.IsNumber(e.KeyChar))//Si es número
                {
                    e.Handled = false;
                }
                else if (e.KeyChar == (char)Keys.Back)//si es tecla borrar
                {
                    e.Handled = false;
                }
                else //Si es otra tecla cancelamos
                {
                    e.Handled = true;
                }
            }

    O puedes simplificarlo así :

           private void txtTelefono_KeyPress(object sender, KeyPressEventArgs e)
            {
                //Si no es número Y NO ES
                //la tecla borrar
                if (!Char.IsNumber(e.KeyChar) &&
                    e.KeyChar != Convert.ToChar(Keys.Back))
                {
                    e.Handled = true;
                }
            }

    Y además le puedes establecer un MaxLength, o sino validar la longitud exacta :

         private void btnValidar_Click(object sender, EventArgs e)
            {
               if(txtTelefono.Text.Trim().Length != 11)
                {
                    MessageBox.Show("El Teléfono debe tener 11 dígitos");
                    return; //Salimos
                }
    
               //Si es correcto seguimos
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    domingo, 22 de mayo de 2016 22:15

Todas las respuestas

  • Hola jeckson vasquez,

    Solo tendrías que usar el evento KeyPress de tu textBox para permitir que ingresen solo números desde el teclado.

            private void txtTelefono_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (Char.IsNumber(e.KeyChar))//Si es número
                {
                    e.Handled = false;
                }
                else if (e.KeyChar == (char)Keys.Back)//si es tecla borrar
                {
                    e.Handled = false;
                }
                else //Si es otra tecla cancelamos
                {
                    e.Handled = true;
                }
            }

    O puedes simplificarlo así :

           private void txtTelefono_KeyPress(object sender, KeyPressEventArgs e)
            {
                //Si no es número Y NO ES
                //la tecla borrar
                if (!Char.IsNumber(e.KeyChar) &&
                    e.KeyChar != Convert.ToChar(Keys.Back))
                {
                    e.Handled = true;
                }
            }

    Y además le puedes establecer un MaxLength, o sino validar la longitud exacta :

         private void btnValidar_Click(object sender, EventArgs e)
            {
               if(txtTelefono.Text.Trim().Length != 11)
                {
                    MessageBox.Show("El Teléfono debe tener 11 dígitos");
                    return; //Salimos
                }
    
               //Si es correcto seguimos
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    domingo, 22 de mayo de 2016 22:15
  • jeckson vasquez,

    En algunos casos, para restringir/validar el ingreso de datos se recomienda el uso de expresiones regulares. Por ejemplo, en su caso vamos a construir una expresión regular que exija al usuario el siguiente patrón: que todos los números de teléfono inicien con 042 luego un guión medio "-" y finalmente 8 dígitos, algo como 042-12345678.

    private void txtNumTelefono_Validating(object sender, CancelEventArgs e)
            {
                Regex rex = new Regex("(042)+[-]{1}[0-9]{8,8}$");
                if (!rex.IsMatch(txtNumTelefono.Text))
                {
                    MessageBox.Show("Formato no válido");
                    e.Cancel = true;
                }
            }

    Note que hago uso del evento Validating que se desencadenará cuando el usuario intente salir del control.


    lunes, 23 de mayo de 2016 0:25