Impedire che, mentre si tiene premuto un tasto della tastiera, si produca un effetto cliccando e rilasciando un altro tasto
Mentre si tiene premuto un tasto, si intende impedire che, prima che questo tasto sia stato rilasciato per la produzione di un effetto mediante l'Evento "_KeyRelease()", siano prodotti effetti dalla sollevazione degli Eventi "_KeyPress()" e "_KeyRelease()" di un altro tasto della tastiera. [nota 1]
Insomma si vuole impedire che, mentre si tiene premuto un tasto della tastiera, derivino effetti dalla attivazione degli Eventi "_KeyPress()" e "_KeyRelease()" premendo e rilasciando un diverso tasto.
Mostriamo un codice per ottenere quella inibizione.
In particolare i tasti della tastiera, presi in considerazione, sono il tasto della freccia a sinistra e quello della freccia a destra. L'obiettivo è quello per cui, sin tanto che si tiene premuto uno dei due tasti, premendo eventualmente l'altro, non si produce alcun effetto.
Private status As Integer Public Sub Form_KeyPress() If status > 0 Then Return status = Key.Code End Public Sub Form_KeyRelease() If Key.Code <> status Then Return Select Case Key.Code Case Key.Right Print "Freccia a destra" Case Key.Left Print "Freccia a sinistra" End Select status = 0 End
Note
[1] Vedere anche la pagina: Impedire che cliccando su un tasto della tastiera si produca più volte il medesimo effetto