Visual Basic - Utilizando ProcessCmdKey evitar q se pueda escribi

Life is soft - evento anual de software empresarial
 
Vista:

Utilizando ProcessCmdKey evitar q se pueda escribi

Publicado por richisaurio (4 intervenciones) el 26/02/2009 20:07:52
Un saludo a todos, necesito una instruccion para realizar lo siguiente:

Estoy utilizando un datagrid y necesito que en una columna donde introduzco numeros reales, solo me permita escribir 2 decimales y apartir del 3er decimal que los ignore.

Hasta el momento estoy trabajando de la siguiente manera: Estoy en una pantalla, donde estoy controlando todas las teclas que son presionadas, esto lo consigo sobreescribiendo la funcion:

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, _ByVal keyData As Keys)
As Boolean

Dentro de esta estoy validado que cuando se escriban numeros, en caso de que se escriba un punto ( indicando valores decimales) solo permita escribir dos digitos a partir de introducir un punto, hago lo siguiente:

Dim Vdecimal
Dim decimales

Select case ( keydata)
Case 110
' En caso de que sea punto
Vdecimal = True

Case 48 To 57
' CASE PARA LOS DIGITOS DEL 0 AL 9
' DEL TECLADO ALFANUMERICO
If Vdecimal Then
decimales = decimales + 1
End If


if decimales>2 then

' AQUI NECESITO ALGO

End If

End If
End Select

Me imagino que tengo que hacer que el valor que se maneja el keydata debe adoptar algun valor, pero nose como hacer esto.

En caso de que se esten escribiendo mas de 2 digitos decimales, necesito que sean ignorados, que ya no se escriban, es decir si escribo: 23.5 permite escribir un digito decimal más en caso de: 23.52 ya no debe permitir que se escriba ningun otro digito mas al escribir por decir un 4, el valor no debe cambiar 23.52.

Les agradezco anticipadamente cualquier respuesta. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder