La solucion alternativa corresponde al problema que tuve hace unos dias, para usar un maskedTextBox en .NET 2005, con el que queria hacer que con una mascara de solo numeros, validar sin mucho enfuerzo el contenido antes de enviarlo a mi base de datos, todo iba muy bien hasta que me di cuenta que este control, permite el ingreso de "espacios" entre los digitos de la mascara; si ud presiona la tecla de espacio, si ud utiliza las flechas, este control te deja un "hueco" sin llenar con algun caracter numerico. No hay problema si este es puesto al principio o al final de la secuencia, el problema llega cuendo digitas un espacio entre los numeros, asi por ejemplo, con una mascara "0000" la que supuestamente evita los espacios, al ser ejecutado el form se puede poner esta secuencia "12_3"; este nos daria un error si lo intentamos almacenar en una base de datos con un campo int, lo que al fin y al cabo nos lleva al principio, tenemos que realizar un codigo para validar la cadena inclusive usando el maskedTextBox, asi que como solucion propongo lo siguiente:
- usar un textbox
- crear un metodo que identifique un numero entero retornando un boolean
Private Sub codigo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles codigo.KeyPress
If Not esEntero(e.KeyChar.ToString) Then
e.KeyChar = ""
End If
End Sub
De igual forma si se requiere limitar el numero de caracteres simplemente se contara el length y si es superado, se vuelve a asignar un string vacio.
Espero que haya sido util.



0 bugs encontrados:
Publicar un comentario en la entrada