none
CREAR UNA ADVERTENCIA CUANDO UN NUMERO DE UN TEXTBOX SE SALE DEL RANGO DE 10 Y 11.5 RRS feed

  • Pregunta

  • este es el siguiente codigo pero no me funciono..........

    Private Sub TEXTBOX_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TEXTBOX.KeyPress
           
            If (Integer.Parse(Me.TEXTBOX.Text) <= 10) Or (Integer.Parse(Me.TEXTBOX.Text) >= 11.5) Then
                Label14.Visible = True ---->>> label que quiero que se visualice 
            Else
                Label14.Visible = True
            End If

        End Sub


    ANDRES FELIPE BAHAMON MONJE

    miércoles, 24 de mayo de 2017 15:49

Todas las respuestas

  • Hola debes validarlo de la siguiente forma:

     Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox.TextChanged
            'si esta vacío te oculta el label de advertencia y no valida
            If TextBox.Text = String.Empty Then
                Label14.Visible = False
                Return
            End If
    
            'valida en el rango de 10 y 11.5
            If Not (Decimal.Parse(Me.TextBox.Text) >= 10 And Decimal.Parse(Me.TextBox.Text) <= 11.5) Then
                'muestra si no está
                Label14.Visible = True
            Else
                'se oculta si es correcto:
                Label14.Visible = False
            End If
        End Sub
    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 24 de mayo de 2017 16:06
  • ¿Qué contiene la etiqueta Label14? ¿Algún mensaje de advertencia o error?, de ser así existe el componente ErrorProvider que permite informar respecto al resultado de una validación.

    La validación la realizas en el evento Validating, por ejemplo:

    Private Sub TextBox1_Validating(sender As Object, ...
    
    	Dim txt = DirectCast(sender, TextBox)
    	Dim Numero As Integer
    
    	ErrorProvider1.SetError(txt, String.Empty)
    
    	If Int32.TryParse(TextBox1.Text, Numero) Then
    		If Numero <= 10 OrElse Numero >= 11.5 Then
    			ErrorProvider1.SetError(txt, "Rango no permitido")
    		End If
    	Else
    		ErrorProvider1.SetError(txt, "Formato de número no válido")
    	End If
    
    	e.Cancel = ErrorProvider1.GetError(txt) <> String.Empty
    End Sub

    El mensaje de error lo obtienes de una manera similar:


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 24 de mayo de 2017 16:08
  • MUCHAS GRACIAS.......... LAS DOS FORMAS ME SIRVEN PERO LO HICE DE ESTA MANERA QUE TAMBIEN ME SIRVIO:

    EN EL EVENTO TEXTCHANGE DEL TEXTBOX

      If (Val(Me.humedad.Text) <= 10) Or (Val(Me.humedad.Text) >= 11.5) Then
                Label14.Visible = True
            Else
                Label14.Visible = False
            End If

    GRACIAS POR SU AYUDA 


    ANDRES FELIPE BAHAMON MONJE

    miércoles, 24 de mayo de 2017 16:27
  • Sobre lo que tienes puedes validar y asignar a la vez:

    Label14.Visible = Val(Me.humedad.Text) <= 10 OrElse Val(Me.humedad.Text) >= 11.5


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 24 de mayo de 2017 16:31
  • Correcto, tomaste la forma de hacerlo con textchanged, pero déjame comentarte , me parece que deberías considerar esta fila 

    If (Val(Me.humedad.Text) <= 10) Or (Val(Me.humedad.Text) >= 11.5) Then

    por esta 

    If (Val(Me.humedad.Text) <= 10 And Val(Me.humedad.Text) >= 11.5) Then

    esta última te dará el rango específico, pruébalo.

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 24 de mayo de 2017 16:37