Visual Basic.NET - validar punto decimal en textbox
hola a todos espero que puedan aydarme.
lo que quiero hacer es validar la entrada de numeros a un text box. en realidad ya lo logre lo que no he podido hacer es validar que solo me permita ingresar solo un punto decial... También te puede interesar...
Puedes usar esta funcion, o usar solo lo necesario:
Public Function Numero(ByVal e As System.Windows.Forms.KeyPressEventArgs, ByRef cajasTexto As TextBox) As Boolean If UCase(e.KeyChar) Like "[!0-9.-]" Then Return True End If Dim c As Short = 0 If UCase(e.KeyChar) Like "[.]" Then If InStr(cajasTexto.Text, ".") > 0 Then Return True Else Return False End If End If End Function En el evento KeyPress de tu caja de texto: e.Handled = Numero(e, txtTotal)' txtTotal, caja de texto a validar
Agregando a lo que los demas enviaron te puedo enviar una
combinacion de esas funciones, pues yo utilice cada una por separado pero combinandolas me permitian ingresar numeros decimales con un solo decimal y borrarla sin problema, puedes combinar las dos funciones en una sola, espero sea util ' esta funcion te permite ingresar solo decimales public Function SoloDecimales(ByVal Keyascii As Short) As Short If InStr("1234567890.", Chr(Keyascii)) = 0 Then SoloDecimales = 0 Else SoloDecimales = Keyascii End If Select Case Keyascii Case 8 SoloDecimales = Keyascii Case 13 SoloDecimales = Keyascii End Select End Function 'esta Funcion te permite ingresar solo un punto decimal Function numero(ByVal e As System.Windows.Forms.KeyPressEventArgs, ByRef cajasTexto As TextBox) As Boolean If UCase(e.KeyChar) Like "[.]" Then If InStr(cajasTexto.Text, ".") > 0 Then Return True Else Return False End If End If End Function 'en el evento keypress del text ingresar: Dim KeyAscii As Short = CShort(Asc(e.KeyChar)) KeyAscii = CShort(SoloDecimales(KeyAscii)) If KeyAscii = 0 Then e.Handled = True End If e.Handled = Numero(e, txtTexto) 'txtTexto caja de texto a validar
muy buna he gracias...!
Public Class Form1
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress Dim numero As Decimal Dim cadena As String Try cadena = TextBox1.Text numero = Convert.ToDecimal(e.KeyChar.ToString) Catch ex As Exception If e.KeyChar <> "." Or e.KeyChar.Equals(vbBack) Then e.Handled = True Else If (cadena.LastIndexOf(".") > 0) Then e.Handled = True End If End If End Try End Sub End Class ahi esta el codigo saludos Problema indice Datagrid Generar bdd con esquema y data |