Visual Basic - Se me bloquea el sistema

Life is soft - evento anual de software empresarial
 
Vista:

Se me bloquea el sistema

Publicado por edulaencina (12 intervenciones) el 24/12/2004 13:02:04
Hola colegas, tengo un error muy extraño que no se a qeu se debe. Se me produce al intentar controlar el Keypress del un textbox. Al darle a la tecla Borrar (Keyascii = 8), se me bloquea el sistema. Aqui les paso el codigo:

Private Sub Text3_KeyPress(Keyascii As Integer)
If Keyascii = 13 Then
SendKeys "{TAB}"
End If
If Keyascii >= 49 Or Keyascii <= 52 Then
If Keyascii = 8 Then
SendKeys "{BS}"
End If
Else
Keyascii = 0
End If
End Sub
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

RE:Se me bloquea el sistema

Publicado por Ayudante (349 intervenciones) el 24/12/2004 16:43:04
Si BS es "Back Space" quiere decir que hay un enciclamiento, o sea, no hay nada de raro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se me bloquea el sistema

Publicado por Benjo (679 intervenciones) el 24/12/2004 19:57:31
edulaencina

El ebento Keypress recibe en su parámetro Keyascii el avlor de la tecla apretada. Si vos presionás BackSpace (8) al pasar por el
********** If Keyascii = 8 Then ***********
Vos colocás un SendKey "{BS}"
lo que significa que se vuelve a apretar la tecla BackSpace (8) y nuevamente el textbox le envia este evento al KeyPress y volvés a pasar por el
********** If Keyascii = 8 Then ***********
Y así por siempre. Eso se llama iteración infinita. Es una función recursiva y nunca termina.
Si sacás el SendKey "{BS}" igual se va a ejecutar el evento BackSpace ya que sigue siendo el valor del KeyAscci

Escribí exactamente lo que querés controlar en el TextBox y por ahí podemos darte una mano.
Mucha suerte.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar