Visual Basic.NET - Mas de validar textbox

 
Vista:

Mas de validar textbox

Publicado por David (116 intervenciones) el 20/06/2004 16:11:53
Hola!! Al final no consegui validar textbox pero con el evento keyPress me conformo. Bueno, la pregunta es esta, consegui que solo me admita digitos el textbox. Ahora como puedo hacer para que tambien me admita una coma? Este es el codigo que tengo.

If (Not e.KeyChar.IsDigit(e.KeyChar)) Then
If Not (e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = True ' esto invalida la tecla pulsada
End If
End If
Gracias y saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mas de validar textbox

Publicado por Edgar (1501 intervenciones) el 20/06/2004 20:57:50
Hola

Tienes que hacer la siguiente comparación:
e.KeyChar = Microsoft.VisualBasic.ChrW(44)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Mas de validar textbox

Publicado por Yamil Bracho (631 intervenciones) el 21/06/2004 02:34:06
Simplemente haz la comparacion

If (Not e.KeyChar.IsDigit(e.KeyChar)) Then
If Not (e.KeyChar = Convert.ToChar(Keys.Back)) Then
If e.KeyChar <> ',' Then
e.Handled = True ' esto invalida la tecla pulsada
End If
End If
End If

Lo mejor es crear un arreglo de String con los caracteres validos y usar el metodo indexOf.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por Edgar (1501 intervenciones) el 21/06/2004 14:58:36
Hola

Es mejor que en vez de colocar tres IF lo coloques como uno solo, algo asi

If (Not e.KeyChar.IsDigit(e.KeyChar)) and Not (e.KeyChar = Convert.ToChar(Keys.Back)) and (e.KeyChar <> ',') Then
e.Handled = True ' esto invalida la tecla pulsada
End If

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por David (116 intervenciones) el 21/06/2004 16:59:15
Otra pregunta, como puedo hacer para limitar el textbox a solo 2 digitos detras de la coma para que sea un precio normal?
Gracias por todo
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 153
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:Mas de validar textbox

Publicado por Yamil Bracho (631 intervenciones) el 21/06/2004 17:42:08
Te recomeindo que uses el Masked Edit control que viene en el resource kit de VB.NET, el cual puedes descargar gratos del website de Microsoft
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por Edgar (1501 intervenciones) el 21/06/2004 17:49:23
Hola

Bueno.. aqui vamos a tener que ir un poco más profundo y hacer uso de expresiones regulares....

Esto se hace haciendo uso de la clase Regex, está ubicado en System.Text.RegulaExpressions.

El código que debes escribir debe lucir más o menos asi

Dim reg as New Regex("\d\d\d\d\d\d,\d\d")

Lo que estás indicando en el parámetro del constructor es que estas aceptando 6 números, luego una coma seguida de dos números.

Luego escribes la siguiente línea

If reg.IsMatch(textbox1.Text)
Handled = true
EndIf

Aqui estás viendo si el contenido del cuadro te texto es efectivamente un número con dos decimales

Espero que te pueda servir...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por david (116 intervenciones) el 21/06/2004 18:57:51
Hola! algo debo de estar haciendo mal xq me acepta cualquier cosa que ponga en el textbox. Mi codigo es el siguiente.
Gracias y saludos!!
Private Sub TIVAMp_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TIVAMp.KeyPress
Dim reg As New Regex("\d\d\d\d\d\d,\d\d")
If reg.IsMatch(TIVAMp.Text) Then
e.Handled = True
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por Edgar (1501 intervenciones) el 21/06/2004 19:18:48
Hola

Prueba colocando un mensaje si la expresión se valida... solo para comprobar que esté validando, si te envia un mensaje cuando seleccionas un número, está bien, en caso contrario, hay algo malo en la expresión que te di.

En caso de que esté validando bien, puedes intentar colocar ti código en el evento Validating, de tal manera que el usuario pueda escribir lo que quiera, pero si no está en el formato adecuado el cuadro no válida, en ese caso el código sería

Dim reg As New Regex("\d\d\d\d\d\d,\d\d")
e.Cancel = !reg.IsMatch(TIVAMp.Text)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por David (116 intervenciones) el 21/06/2004 19:29:52
Hola. Da error xq no sabe q es Cancel ni el operador !. Esto lo estoy poniendo en el evento KeyPress, pero sigue aceptando cualquier tecla.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por Edgar (1501 intervenciones) el 21/06/2004 20:30:03
Hola

El código que te di anteriormente es para el evento Validating... el keyPress no tiene esa propiedad.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mas de validar textbox

Publicado por NILSON PEREZ (2 intervenciones) el 24/05/2005 01:43:35
Hola muchachos, he visto las respuestas pero hice una pregunta en este foro, que tal vez tenga que ver con el tema, por favor si pueden colaborarme les agradeceré mucho, en resumidas cuentas lo que pretendo es por propiedad establecer el número de enteros y el número de decimales que pueda aceptar un control textbox.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar