Números decimales en un textbox sin permitir repetir punto decim al

01/04/2005 - 09:01 por rbal | Informe spam
Hola, estoy tratando de crear un textbox (como componente) para solamente
permitir ingreso de números, incluyendo el punto decimal. El problema resulta
que si por error alguien pone dos puntos decimales, el sistema se cae al
entrar en error. estoy viendo la forma de que solamente permita poner el
punto decimal una sola vez en el textbox
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
01/04/2005 - 15:17 | Informe spam
Hola rbal,

espero que la siguiente porción de código te ayude:

Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As
KeyPressEventArgs) Handles TextBox1.KeyPress
Dim cadena As String = TextBox1.Text
Dim Ocurrencias As Byte = 0
Dim str As String() = cadena.Split(".")
For I As Integer = 0 To str.Length - 1
Ocurrencias = Ocurrencias + 1
Next
Ocurrencias = Ocurrencias - 1
If (Char.IsDigit(e.KeyChar) = False And e.KeyChar <> ("."c)) Or
(e.KeyChar = ("."c) And Ocurrencias <> 0) Then
e.Handled = True
End If
End Sub


Otra posibilidad es utilizar expresiones regulares.
Por otro lado, aunque el uso del símbolo decimal aquí es el . yo intentaría
generalizarlo con el uso del símbolo decimal indicado en la configuración
regional del pc que puede ser obtenido con el nombre de espacio Culture.
Te invito por lo tanto, a que veas el siguiente artículo que te ayudará
igualmente:
http://www.microsoft.com/spanish/ms...art116.asp

Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"rbal" wrote:

Hola, estoy tratando de crear un textbox (como componente) para solamente
permitir ingreso de números, incluyendo el punto decimal. El problema resulta
que si por error alguien pone dos puntos decimales, el sistema se cae al
entrar en error. estoy viendo la forma de que solamente permita poner el
punto decimal una sola vez en el textbox

Preguntas similares