none
validar cajas de texto!!

    Pregunta

  • Hola a todos, se que alguno de ustedes me puede ayudar!!

     

    Lo que pasa es que necesito validar algunas cajas de texto, entre ellas necesito validar cajas con valor numerico, de texto y decimales, alguien me puede decir como hacerlo por favor, estoy programando en visual basic.net 2008

     

    gracias

    jueves, 16 de julio de 2009 18:38

Respuestas

  • una funcion cortita para validar numeros y no permitir nada mas:
    public char ComprobarTeclaPresionadaNumero(Char c)
    {
        if (Char.IsLetter(c) Or Char.IsPunctuation(c) Or Char.IsSeparator(c) Or Char.IsSymbol(c)) Then
          return ""
    return c
    }
    ahora esto lo asignas al evento keypress de tus textbox que quieras validar
       
       
    sábado, 18 de julio de 2009 17:34

Todas las respuestas

  • Hola Marpao.

    En cuanto a lo que te refieres a validaciones de numeros y decimales. Lo que te recomiendo es que utilices en vez de un textbox el control numericupdown, con el cual te evitas las validaciones de numeros y decimales. Con las validaciones de texto, es bueno que describas que deseas validar y asi te podemos colaborar.

    Saludos
    Felipe Villa
    jueves, 16 de julio de 2009 18:45
  • Hola Felipe, pues gracias por responder, pero estoy viendo que en realidad no necesito validar cajas con valor de texto , sólo las numéricas y las decimales, yo iba a trabajar con masked text, pero mi tutor empresarial me pide que lo valide, bueno, para las numéricas encontre un código que voy a probar a ver si funciona, y pues me faltaría para los decimales
    jueves, 16 de julio de 2009 18:51
  • hola,

    podrias aplciar algunas de estas tecnicas para validar tu formulario:

    Extending Windows Forms with a Custom Validation Component Library
    Validators for Windows Forms - ValidationProvider Control
    Simple validation control for Win Forms


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 16 de julio de 2009 18:59
  • Si usas web forms podrias implementar Ajax, un filtered textbox te ayudaria...

    Mira este ejemplo...
    http://www.asp.net/AJAX/AjaxControlToolkit/Samples/FilteredTextBox/FilteredTextBox.aspx
    jueves, 16 de julio de 2009 19:17
  • HOla esto consiste en crear una sub pasando el textbox como valor para no estar repitiendo el codigo en todo el evento Changed del textbox

    ANALIZA EL CODIGO


    para ello pega el siguiente codigo en el formulario
      Private Sub TextBoxToNumeric(ByVal TextBox As TextBox)
    
        
            If Not (IsNumeric(TextBox1.Text)) Then
    
                TextBox.Text = String.Empty
            Else
    
                Dim Acept As Decimal
    
                Acept = CType(TextBox.Text, Decimal)
    
                If Acept - Math.Round(Acept, 0) <> 0 Then
    
                    TextBox.Text = String.Empty
    
                End If
    
    
            End If
    
        End Sub
    
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    
            Me.TextBoxToNumeric(Me.TextBox1)
        End Sub
     aqui solo muestro en textbox el cual su evento se hace en textChagel el cual si lo intrucdido son letras no hara nada pero si se introducen NUmeros si se escribiran en el textbox

    en la linea         Me.TextBoxToNumeric(Me.TextBox1)   del codigo anterior pasamos el textbox1 como la propietario de la sub que creamos al igual puedes usar la misma sub en cualquier evento TextBox1_TextChanged de cada textbox que tengas solo pasaras el nombre por el textbox que deseas ejemplo si tienes otro textbox que se llama textBox2 usarias la sub de la siguiente manera Me.TextBoxToNumeric(Me.TextBox2)  y asi sucesivamente.



    Nota : si introduces Numeros primero se te mostraran pero si en el momento que estas introduciiendo numeros presionas una tecla no numerica se borraran los numeros que habias escrito.


    ESPERO TE AYUDE Y SI TE AYUDA ESTE COMENTARIO MARCALO COMO RESPUESTA

    Saludos.

    Melvin.

    Todo Es posible si se studia con exfuerso no importando los de mas Dios esta con nosotros y no hay mas sabiduria que la de Dios, Everything is posible if you study a lot wiht esforce , God Loves us and there isn't anybody like God.... Melvin Saludos
    jueves, 16 de julio de 2009 22:12
  • hOLA aQUI TE DEJO OTRO EJEMPLO ESTE CONSISTE EN HACER QUE SOLO SE PRESIONEN LAS TECLAS  NUMERALES YA SEAN LAS TECLAS NUMERALES NUMPAD U OTRAS Y TAMBIEN PERMITE PRESIONAR LAS TECLA dECIMAL OSEA (".")  SEGUIDO POR NUMEROS Y PERMITE LA TECLA ESPACIADORA EL CUAL CREO QUE TE SERA MUY UTIL

    PERO SI PRESIONAS UNA TECLA QUE NO ES NUMERAL OSEA CUALQUIER OTRA TECLA QUE NO ESTA REGISTRADA EN EL EVENTO KEY_UP DEL TEXTBOX  EL TEXDTO DEL TEXTBOX YA SEAN NUMROS U OTROS SE ELIMINARAN PUESTO QUE SOLO ESTA VALIDADO PARA QUE ACEPTE NUMEROS Y LAS TECLA bACKsPACE QUE PERMITE BORRAR UN NUMERO POR SI NO LO QUERIAS

    y tambien permite solo usar un evento para evitarte el mucho codigo para el textbox

    ANalizalo y pruebalo

    para ello create un proyecto nuevo y agrega un textbox

    y pega el siguiente codigo

        ''' <summary>
        ''' Permite que el Textbox solo acepte Numeros
        ''' </summary>
        ''' <param name="TextBoxs">Nombre del TextBox que quiere validar para que acepte numeros </param>
        ''' <param name="e">Pase la letra 'e' como valor en el evento KeyUp</param>
        ''' <remarks></remarks>
        Private Shadows Sub KeyUp(ByVal TextBoxs As System.Windows.Forms.TextBox, ByVal e As System.Windows.Forms.KeyEventArgs)
            If e.KeyData = Keys.Space Or e.KeyData = Keys.Decimal Or e.KeyData = Keys.NumPad0 Or e.KeyData = Keys.NumPad1 Or e.KeyData = Keys.NumPad2 Or e.KeyData = Keys.NumPad3 _
               Or e.KeyData = Keys.NumPad4 Or e.KeyData = Keys.NumPad5 Or e.KeyData = Keys.NumPad6 Or e.KeyData = Keys.NumPad7 Or e.KeyData = Keys.NumPad8 Or e.KeyData = Keys.NumPad9 _
               Or e.KeyData = Keys.D0 Or e.KeyData = Keys.D1 Or e.KeyData = Keys.D2 Or e.KeyData = Keys.D3 Or e.KeyData = Keys.D4 Or e.KeyData = Keys.D5 Or e.KeyData = Keys.D6 _
               Or e.KeyData = Keys.D7 Or e.KeyData = Keys.D8 Or e.KeyData = Keys.D9 Then
    
            ElseIf e.KeyData = Keys.Back And TextBoxs.Text.Length > 0 Then
                On Error Resume Next
                TextBoxs.Text.Remove(TextBoxs.SelectionStart - 1)
    
            Else
    
    
                TextBoxs.Text = String.Empty
    
            End If
    
    
        End Sub
    
        Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
            Me.KeyUp(Me.TextBox1, e)
        End Sub



    como veras en el evento  TextBox1_KeyUp del textbox pasamos la linea  Me.KeyUp(Me.TextBox1, e)


    la letra " e " es la que establesimos en la Sub KeyUp    que creamos bueno si tubieras dos textbox en el formulario temdrias que cambiar solo el nombre por ejemplo

    Me.KeyUp(Me.TextBox2, e)  Siempre dejando la letra "e" y asi sucesivamente puedes ir cambiando su nombre pasando el nombre del textbox como parametro.


    ESPERO TE AYUDE, Y SI TE AYUDA ESTE COMENTARIO MARCALO COMO RESPUESTA

    : )

    Saludos.

    Melvin. 


    Todo Es posible si se studia con exfuerso no importando los de mas Dios esta con nosotros y no hay mas sabiduria que la de Dios, Everything is posible if you study a lot wiht esforce , God Loves us and there isn't anybody like God.... Melvin Saludos
    • Propuesto como respuesta Melvindev viernes, 17 de julio de 2009 19:07
    viernes, 17 de julio de 2009 17:52
  • una funcion cortita para validar numeros y no permitir nada mas:
    public char ComprobarTeclaPresionadaNumero(Char c)
    {
        if (Char.IsLetter(c) Or Char.IsPunctuation(c) Or Char.IsSeparator(c) Or Char.IsSymbol(c)) Then
          return ""
    return c
    }
    ahora esto lo asignas al evento keypress de tus textbox que quieras validar
       
       
    sábado, 18 de julio de 2009 17:34