none
VALIDACION DE TEXT BOX RRS feed

  • Pregunta

  • Buenos Días Amig@s

    Recurro a sus conocimientos con la siguiente pregunta:

    Tengo un formulario que realiza consultas partiendo de un código de cliente, necesito que si el usuario ingresa menos o mas de 10 caracteres numéricos se genere un mensaje de alerta que obligue al usuario a realizar la corrección

    Mil Gracias y les quedo agradecido.

    jueves, 22 de septiembre de 2016 13:39

Todas las respuestas

  • Hola Sairu Fabian,

    Qué lenguaje estás usando, C# o Vb.net ?

    Puedes usar el evento TextChanged (se ejecutará mientras escriba) o Leave (cuando sale del control) para hacer la validación correspondiente.

    Además, cómo vas a mostrar el error ? Usarás ErrorProvider o algún Label, ya que un MessageBox sería muy incómodo.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 22 de septiembre de 2016 15:16
  • Buenos Días

    Gracias por responder

    Lenguaje Visual Basic

    jueves, 22 de septiembre de 2016 15:37
  • Hola Sairu Fabian,

    Podrías usar un ErrorProvider para mostrar el error.

    Y en el evento Leave de tu TextBox, cuando salga del control se ejecute :

     Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
            If TextBox1.Text.Count(Function(x) Char.IsNumber(x)) <> 10 Then
                ErrorProvider1.SetError(TextBox1, "El campo tiene error")
                Exit Sub
            End If
    
            ErrorProvider1.SetError(TextBox1, String.Empty)
        End Sub

    Dónde si tiene más o menos de 10 números mostraría el error.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 22 de septiembre de 2016 15:55
  • Gracias por la respuesta

    Esta palabra o instrucción me esta generando error

    Handles

     Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
            If TextBox1.Text.Count(Function(x) Char.IsNumber(x)) <> 10 Then
                ErrorProvider1.SetError(TextBox1, "El campo tiene error")
                Exit Sub
            End If

            ErrorProvider1.SetError(TextBox1, String.Empty)
        End Sub

    Error de compilación

    Se esperaba fin de la instrucción

    jueves, 22 de septiembre de 2016 16:29
  • Hola Sairu Fabian,

    Me parece raro que no reconozca el Handles, ya que esa parte se genera solo cuando creas el evento Leave.

    No estarás copiando y pegando no ?

    - Para crear un evento, vas a las propiedades del TextBox1 y das double click al evento que deseas generar.


    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 22 de septiembre de 2016 16:55
  • Muchas Gracias por su tiempo, tal vez yo estoy utilizando otro programa, por que no visualizo esa propiedad

    Tengo (según orden alfabético)

    Left

    Locked

    y salta a MaxLength

    jueves, 22 de septiembre de 2016 18:58
  • Muchas Gracias por su tiempo, tal vez yo estoy utilizando otro programa, por que no visualizo esa propiedad

    Tengo (según orden alfabético)

    Left

    Locked

    y salta a MaxLength

    Hola Sairu Fabian,

    No estás usando Visual Studio ? Puedes mencionar la versión.

    Además, lo que mencionas son propiedades del control y no eventos, si te fijas bien en la imagen anterior hago referencia a un "rayito" :

    Los cuáles mostrarán los eventos que tiene el control.

    Aunque una captura de imagen sería de gran ayuda.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 23 de septiembre de 2016 0:58
  • Sairu Fabian,

    Complementando las propuestas que has recibido, quizá el evento idóneo para realizar este tipo de tareas sea el evento Validating().


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 23 de septiembre de 2016 5:38
  • Hola @Sairu Fabian

    La validación de dato deberías hacerlo desde la capa de lógica, es la encargada de enviar mensajes a la capa de presentación, de esta forma tu código quedaría mas prolijo, para ello puedes usar Fluent Validation

    Acá tienes un manual de su implementación en Windows Forms Programación en 3 capas–Validación Reglas de Datos


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 25 de septiembre de 2016 18:35