Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 29 Septiembre 2013, 17:53 pm



Título: como puedo Evitar signos + - en texbox
Publicado por: luis456 en 29 Septiembre 2013, 17:53 pm
Ya mareado de googlear jejejej tengo otra pregunta si es posible  :rolleyes:

tengo varios texbox donde envió los resultados de una ecuación matemática introduzco datos en unos texbox estos pasan por la función y los resultados me los envía a estos 20 texbox. el problema es, que aunque le he puesto que solo acepte números lo cual funciona hay una pega es que cuando los números son negativos me muestra el signo  negativo  " - " lo cual no he podido eliminar. he puesto esta funcion pero sigue igual.

Código:
If InStr(1, "0123456789" & Chr(8), e.KeyChar) = 0 Then  
        e.KeyChar = "" 
    End If 


De antemano gracias

Luis

Pd alguna direccion de algun tuto de solo texbox jejeje




Título: Re: como puedo Evitar signos + - en texbox
Publicado por: Eleкtro en 29 Septiembre 2013, 18:15 pm
( InStr es una función de vb6, te vuelvo a aconsejar como en otra ocasión que dejes todo eso a un lado... si empiezas a programar en VBNET como si estuvieramos en VB6, mal vamos, creo que deberías buscar ejemplos mejores en Google xD )

A ver si lo he entendido bien, ¿quieres permitir la escritura MANUAL de solo Dígitos en un textbox (solo números, sin tener en cuenta el símbolo del minus "-")?

Código
  1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) _
  2. Handles TextBox1.KeyPress
  3.  
  4.    e.Handled = Not ("0123456789".IndexOf(e.KeyChar) > -1 OrElse e.KeyChar = Convert.ToChar(Keys.Back))
  5.  
  6. End Sub

Si usas ese código que te acabo de mostrar, el textbox podrá seguir conteniendo cualquier tipo de caracter si seteas la propiedad Text del control, Ej: Textbox1.text = "QWERTY"


¿O quieres que de todas las maneras posibles el Textbox solo pueda contener números?, no se si me explico bien:

Código
  1. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _
  2. Handles TextBox1.TextChanged
  3.  
  4.    sender.text = System.Text.RegularExpressions.Regex.Replace(sender.text, "\D", "")
  5.  
  6. End Sub

Si usas ese código, entonces no necesitas usar el primero que hice.

Saludos!


Título: Re: como puedo Evitar signos + - en texbox
Publicado por: luis456 en 29 Septiembre 2013, 18:57 pm
( InStr es una función de vb6, te vuelvo a aconsejar como en otra ocasión que dejes todo eso a un lado... si empiezas a programar en VBNET como si estuvieramos en VB6, mal vamos, creo que deberías buscar ejemplos mejores en Google xD )

A ver si lo he entendido bien, ¿quieres permitir la escritura MANUAL de solo Dígitos en un textbox (solo números, sin tener en cuenta el símbolo del minus "-")?

Código
  1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) _
  2. Handles TextBox1.KeyPress
  3.  
  4.    e.Handled = Not ("0123456789".IndexOf(e.KeyChar) > -1 OrElse e.KeyChar = Convert.ToChar(Keys.Back))
  5.  
  6. End Sub

Si usas ese código que te acabo de mostrar, el textbox podrá seguir conteniendo cualquier tipo de caracter si seteas la propiedad Text del control, Ej: Textbox1.text = "QWERTY"


¿O quieres que de todas las maneras posibles el Textbox solo pueda contener números?, no se si me explico bien:

Código
  1. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _
  2. Handles TextBox1.TextChanged
  3.  
  4.    sender.text = System.Text.RegularExpressions.Regex.Replace(sender.text, "\D", "")
  5.  
  6. End Sub

Si usas ese código, entonces no necesitas usar el primero que hice.

Saludos!



 ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)   no se me ocurre mas jejejje

Muchas gracias si necesitas alguna reparacion de tu coche me avisas :)

Luis




Título: Re: como puedo Evitar signos + - en texbox
Publicado por: luis456 en 29 Septiembre 2013, 19:01 pm
Perdon este fue el que nesecitaba  ;-)  ;-)  ;-)  ;-)


Código:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) _
Handles TextBox1.TextChanged
 
    sender.text = System.Text.RegularExpressions.Regex.Replace(sender.text, "\D", "")
 
End Sub

De nuevo muchas gracias

Luis