Principales respuestas
Que el textbox solo acepte un punto y numeros

Pregunta
-
hola como puedo hacer para que solo me escriba un punto en el textbox
gracias
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress Dim KeyAscii As Short = CShort(Asc(e.KeyChar)) KeyAscii = CShort(SoloNumeros(KeyAscii)) If KeyAscii = 0 Then e.Handled = True End If End Sub 'FUNCION SOLO NUMEROS Function SoloNumeros(ByVal Keyascii As Short) As Short If InStr("1234567890.", Chr(Keyascii)) = 0 Then SoloNumeros = 0 Else SoloNumeros = Keyascii End If Select Case Keyascii Case 8 SoloNumeros = Keyascii Case 13 SoloNumeros = Keyascii Case 46 End Select End Function 'FUNCION SOLO NUMEROS
- Editado JETET lunes, 21 de diciembre de 2015 10:02
Respuestas
-
Entonces no tienes más que comprobar que para el punto la propiedad SelectionStart debe ser igual a uno.
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress Dim textControl As TextBox = CType(sender, TextBox) If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then ' Si no es un carácter de control, un número o un punto no es válido e.Handled = True ElseIf e.KeyChar = "."c AndAlso (textControl.SelectionStart <> 1 Or textControl.Text.IndexOf("."c) >= 0) Then ' Si es un punto y no es el segundo carácter o existe otro no es válido e.Handled = True End If End Sub
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta JETET lunes, 21 de diciembre de 2015 21:16
Todas las respuestas
-
-
hola
podrias validar numeros usando
Truco: Solo Numeros en los Textboxt (Windows Forms) – VB y CSharp
tambien podrias usar el evento Validating, o sea dejar que se ingrese cualquier cosa y luego validarlo al quitar el foco
public void textbox1_Validating(...){ decimal val = 0; if(decimal.TryParse(textbox1.Text, out val)){ ErrorProvider1.SetError(textbox1, "solo se permite valores numericos"); e.Cancel = true; } }
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Editado Leandro TuttiniMVP lunes, 21 de diciembre de 2015 12:38
-
lo que quiero hacer es que solo acepte 1 punto que no pueda escribir 2 puntos si ya hay uno
ej
1. correcto
1.. incorrecto
.1 incorecto
el punto simpre tiene que estar en segunda posicion es decir esto acepta 5 caracteres con el punto incluido
1.023 correcto
10.23 incorrecto
.1023 incorrecto
gracias
-
¿Algo así?
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress Dim textControl As TextBox = CType(sender, TextBox) If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then ' Si no es un carácter de control, un número o un punto no es válido e.Handled = True ElseIf e.KeyChar = "."c AndAlso (textControl.SelectionStart = 0 Or textControl.Text.IndexOf("."c) >= 0) Then ' Si es un punto y es el primer carácter o existe otro no es válido e.Handled = True End If End Sub
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ... -
-
Entonces no tienes más que comprobar que para el punto la propiedad SelectionStart debe ser igual a uno.
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress Dim textControl As TextBox = CType(sender, TextBox) If Not Char.IsControl(e.KeyChar) AndAlso Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c Then ' Si no es un carácter de control, un número o un punto no es válido e.Handled = True ElseIf e.KeyChar = "."c AndAlso (textControl.SelectionStart <> 1 Or textControl.Text.IndexOf("."c) >= 0) Then ' Si es un punto y no es el segundo carácter o existe otro no es válido e.Handled = True End If End Sub
Píldoras .NET
Artículos, tutoriales y ejemplos de código .NETPíldoras JS
Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...- Marcado como respuesta JETET lunes, 21 de diciembre de 2015 21:16
-