Buenas!.
Código:
Código:
Const PTATOEURO As Float = 166.386
Public Sub Form_Open()
Me.Title = "Conversor de ptas a euros"
End
Public Sub vlbPesetas_KeyPress()
If Key.code = Key.enter Or Key.code = Key.Return Then
'Si se ha pulsado la tecla enter o la tecla return
If vlbPesetas.Value > 0 Then
'Si el valor es mayor que cero realizar la conversión
lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
Else
'En caso contrario poner el valor a cero
vlbPesetas.Value = 0
Endif
Endif
End
Os muestro el problema. Cuando escribo una cantidad en el valuebox por primera vez.
Pero si quiero realizar otra operación e intento escribir en el valuebox...
Por ejemplo cuanto son 60 pesetas en euros, ocurre esto con el código de arriba.
Entonces tuve que usar los dos eventos. Keypress y KeyRelease.
Código:
Const PTATOEURO As Float = 166.386
Private conversion As Boolean
Public Sub Form_Open()
Me.Title = "Conversor de ptas a euros"
End
Public Sub vlbPesetas_KeyRelease()
If Key.code = Key.enter Or Key.code = Key.Return Then
'Si se ha levantado la tecla enter o la tecla return
If vlbPesetas.Value > 0 Then
'Si el valor es mayor que cero realizar la conversión
lblEuros.Text = Str(Round(vlbPesetas.Value / PTATOEURO, -2)) & " €"
'Se ha realizado la conversión
conversion = True
Else
vlbPesetas.Value = 0
Endif
Endif
End
Public Sub vlbPesetas_KeyPress()
'Al volver a pulsar una tecla
'Se comprueba si se ha realizado la conversión
If conversion Then
'Ponemos el valor del valuebox a cero
vlbPesetas.Value = 0
'La conversión aun no se ha realizado
conversion = False
Endif
End
De este problema salió el ejemplo del TextBox. En parte es casi el mismo problema.
En el caso del valuebox no me interesaba que se borrase la cantidad en euros al pulsar la tecla Return o Enter,
quería que se mostrase y quedase ahí para luego al volver a escribir una nueva cantidad, pulsando una tecla
se borrase la cantidad anterior y pudiera escribir la nueva. Y así continuamente.
¿ Es posible hacerlo de otra forma ?. ¿ Es la forma correcta usando los dos eventos ?.
Añadí hasta un Timer, para que pasado un tiempo se borrase la cantidad. Pero no fue necesario.
En parte lo curioso del código es que parece invertido. Keypress no comprueba la tecla pulsada.
Y en este caso es después de haberla pulsado, con KeyRelease.
Saludos